diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/build.properties b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/build.properties
index 0e522c2..caecb83 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/build.properties
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/build.properties
@@ -13,7 +13,6 @@
 bin.includes = .,\
 			   plugin.xml,\
                META-INF/,\
-               configs/,\
                plugin.properties,\
                about.html,\
                icons/
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfcore.properties b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfcore.properties
deleted file mode 100644
index 25183a0..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfcore.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 Oracle Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle Corporation - initial API and implementation
-###############################################################################
-Attribute.Label.basename=Basename
-Attribute.Label.binding=Binding
-Attribute.Label.converterId=Converter ID
-Attribute.Label.dateStyle=Date Style
-Attribute.Label.escape=Escape
-Attribute.Label.currencyCode=Currency Code
-Attribute.Label.groupingUsed=Grouping Used
-Attribute.Label.id=ID
-Attribute.Label.integerOnly=Integer Only
-Attribute.Label.itemDisabled=Item Disabled
-Attribute.Label.locale=Locale
-Attribute.Label.maximum=Maximum
-Attribute.Label.minimum=Minimum
-Attribute.Label.name=Name
-Attribute.Label.pattern=Pattern
-Attribute.Label.rendered=Rendered
-Attribute.Label.timeStyle=Time Style
-Attribute.Label.timeZone=Time Zone
-Attribute.Label.type=Type
-Attribute.Label.validatorId=Validator ID
-Attribute.Label.value=Value
-Attribute.Label.var=Var
-Category.Label.Constraint=Constraint
-Category.Label.General=General
-Category.Label.Other=Other
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfcore.xml b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfcore.xml
deleted file mode 100644
index d5f3094..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfcore.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0" ?>
-<taglib uri="http://java.sun.com/jsf/core">
-	<tag name="actionListener">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="type" type="CLASSNAME" required="required"
-				typeparam="superType=I:javax.faces.event.ActionListener" 
-				displaylabel="%Attribute.Label.type" />
-		</category>
-	</tag>
-	<tag name="attribute">
-		<category name="General" 
-			displaylabel="%Category.Label.General">
-			<attribute name="name" displaylabel="%Attribute.Label.name" required="required"/>
-			<attribute name="value" required="required"
-				displaylabel="%Attribute.Label.value" />
-		</category>
-	</tag>
-	<tag name="convertDateTime">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="dateStyle" type="ENUMERATED"
-				displaylabel="%Attribute.Label.dateStyle">
-				<option key="short" value="short" />
-				<option key="medium" value="medium" />
-				<option key="long" value="long" />
-				<option key="full" value="full" />
-				<option key="default" value="default" default="default"/>
-			</attribute>
-			<attribute name="locale" type="LOCALE"
-				displaylabel="%Attribute.Label.locale" />
-			<attribute name="pattern" type="ENUMERATED"
-				displaylabel="%Attribute.Label.pattern">
-				<option key="M/d/yy" value="M/d/yy" />
-				<option key="EEE, M/d/yy" value="EEE, M/d/yy" />
-				<option key="MM/dd/yyyy" value="MM/dd/yyyy" />
-				<option key="EEE, MM/dd/yyyy" value="EEE, MM/dd/yyyy" />
-				<option key="MMM d, yyyy" value="MMM d, yyyy" />
-				<option key="EEE, MMM d, yyyy" value="EEE, MMM d, yyyy" />
-				<option key="MMMM d, yyyy" value="MMMM d, yyyy" />
-				<option key="EEEE, MMMM d, yyyy"
-					value="EEEE, MMMM d, yyyy" />
-				<option key="MMMM yyyy" value="MMMM yyyy" />
-				<option key="hh:mm" value="hh:mm" />
-				<option key="hh:mm z" value="hh:mm z" />
-				<option key="HH:mm z" value="HH:mm z" />
-				<option key="HH:mm:ss z" value="HH:mm:ss z" />
-				<option key="M/d/yy hh:mm" value="M/d/yy hh:mm" />
-				<option key="EEE, M/d/yy hh:mm"
-					value="EEE, M/d/yy hh:mm" />
-				<option key="MM/dd/yyyy HH:mm:ss z"
-					value="MM/dd/yyyy HH:mm:ss z" />
-				<option key="EEE, MM/dd/yyyy HH:mm:ss z"
-					value="EEE, MM/dd/yyyy HH:mm:ss z" />
-				<option key="MMM d, yyyy HH:mm z"
-					value="MMM d, yyyy HH:mm z" />
-				<option key="EEE, MMM d, yyyy HH:mm z"
-					value="EEE, MMM d, yyyy HH:mm z" />
-				<option key="MMMM d, yyyy HH:mm z"
-					value="MMMM d, yyyy HH:mm z" />
-				<option key="EEEE, MMMM d, yyyy HH:mm z"
-					value="EEEE, MMMM d, yyyy HH:mm z" />
-			</attribute>
-			<attribute name="timeStyle" type="ENUMERATED"
-				displaylabel="%Attribute.Label.timeStyle">
-				<option key="short" value="short" />
-				<option key="medium" value="medium" />
-				<option key="long" value="long" />
-				<option key="full" value="full" />
-				<option key="default" value="default" default="default"/>
-			</attribute>
-			<attribute name="timeZone" type="TIMEZONE"
-				displaylabel="%Attribute.Label.timeZone" />
-			<attribute name="type" type="ENUMERATED"
-				displaylabel="%Attribute.Label.type">
-				<option key="date" value="date" default="default"/>
-				<option key="time" value="time" />
-				<option key="both" value="both" />
-			</attribute>
-		</category>
-	</tag>
-	<tag name="converter">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="converterId" required="required"
-				displaylabel="%Attribute.Label.converterId" type="converterId"/>
-		</category>
-	</tag>
-	<tag name="convertNumber">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="locale" type="LOCALE"
-				displaylabel="%Attribute.Label.locale" />
-			<attribute name="type" displaylabel="%Attribute.Label.type"
-				type="ENUMERATED">
-				<option key="number" value="number" default="default"/>
-				<option key="currency" value="currency" />
-				<option key="percentage" value="percentage" />
-			</attribute>
-		</category>
-		<category name="Other" displaylabel="%Category.Label.Other">
-			<attribute name="currencyCode"
-				displaylabel="%Attribute.Label.currencyCode" type="CURRENCYCODE" />
-			<attribute name="groupingUsed"
-				displaylabel="%Attribute.Label.groupingUsed" type="BOOLEAN" />
-			<attribute name="integerOnly"
-				displaylabel="%Attribute.Label.integerOnly" type="BOOLEAN" />
-			<attribute name="pattern"
-				displaylabel="%Attribute.Label.pattern" type="ENUMERATED">
-				<option key="0" value="0" />
-				<option key="0.00" value="0.00" />
-				<option key="#,##0" value="#,##0" />
-				<option key="#,##0.00" value="#,##0.00" />
-				<option key="#,##0;(#,##0)" value="#,##0;(#,##0)" />
-				<option key="#,##0.00;(#,##0.00)"
-					value="#,##0.00;(#,##0.00)" />
-				<option key="0.##E0" value="0.##E0" />
-				<option key="0%" value="0%" />
-				<option key="0.00%" value="0.00%" />
-			</attribute>
-		</category>
-	</tag>
-	<tag name="facet">
-		<category name="General" 
-			displaylabel="%Category.Label.General">
-			<attribute name="name" displaylabel="%Attribute.Label.name" required="required"/>
-		</category>
-	</tag>
-	<tag name="loadBundle">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="basename" type="CLASSPATH_RESOURCE" required="required"
-				displaylabel="%Attribute.Label.basename" />
-			<attribute name="var" displaylabel="%Attribute.Label.var" required="required"/>
-		</category>
-	</tag>
-	<tag name="param">
-		<referedcategory ref="General">
-			<includeattrs>
-				<attribute name="name"
-					displaylabel="%Attribute.Label.name" />
-				<attribute name="value"
-					displaylabel="%Attribute.Label.value" required="required"/>
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="selectItem">
-		<referedcategory ref="General" />
-		<category name="Other" displaylabel="%Category.Label.Other">
-			<attribute name="itemDisabled"
-				displaylabel="%Attribute.Label.itemDisabled" type="BOOLEAN" typeparam="default=false" />
-		</category>
-	</tag>
-	<tag name="selectItems">
-		<referedcategory ref="General" />
-	</tag>
-	<tag name="subview">
-		<referedcategory ref="General">
-			<includeattrs>
-				<attribute name="id" displaylabel="%Attribute.Label.id" required="required"/>
-			</includeattrs>
-			<excludeattrs refs="value" />
-
-		</referedcategory>
-		<category name="Other" displaylabel="%Category.Label.Other">
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-		</category>
-	</tag>
-	<tag name="validateDoubleRange">
-		<referedcategory ref="Constraint" />
-	</tag>
-	<tag name="validateLength">
-		<referedcategory ref="Constraint" />
-	</tag>
-	<tag name="validateLongRange">
-		<referedcategory ref="Constraint" />
-	</tag>
-	<tag name="validator">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="validatorId"
-				displaylabel="%Attribute.Label.validatorId" type="validatorId" required="required"/>
-		</category>
-	</tag>
-	<tag name="valueChangeListener">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="type" type="CLASSNAME" required="required"
-				typeparam="superType=I:javax.faces.event.ValueChangeListener"
-				displaylabel="%Attribute.Label.type" />
-		</category>
-	</tag>
-	<tag name="verbatim">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="escape" type="BOOLEAN" typeparam="default=false"
-				displaylabel="%Attribute.Label.escape" />
-		</category>
-	</tag>
-	<tag name="view">
-		<category name="General"
-			displaylabel="%Category.Label.General">
-			<attribute name="locale" type="LOCALE"
-				displaylabel="%Attribute.Label.locale" />
-		</category>
-	</tag>
-	<definition>
-		<categories>
-			<category name="General"
-				displaylabel="%Category.Label.General">
-				<attribute name="id" displaylabel="%Attribute.Label.id" />
-				<attribute name="value"
-					displaylabel="%Attribute.Label.value" />
-				<attribute name="binding" type="PROPERTYBINDING"
-					displaylabel="%Attribute.Label.binding" />
-			</category>
-			<category name="Constraint"
-				displaylabel="%Category.Label.Constraint">
-				<attribute name="minimum"
-					displaylabel="%Attribute.Label.minimum" />
-				<attribute name="maximum"
-					displaylabel="%Attribute.Label.maximum" />
-			</category>
-		</categories>
-	</definition>
-</taglib>
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfhtml.properties b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfhtml.properties
deleted file mode 100644
index 9b68fcd..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfhtml.properties
+++ /dev/null
@@ -1,112 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 Oracle Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle Corporation - initial API and implementation
-###############################################################################
-Attribute.Label.accept=Accept
-Attribute.Label.acceptcharset=Accept Charset
-Attribute.Label.accesskey=Access Key
-Attribute.Label.action=Action
-Attribute.Label.actionListener=ActionListener
-Attribute.Label.alt=Alt
-Attribute.Label.bgcolor=BG Color
-Attribute.Label.binding=Binding
-Attribute.Label.border=Border
-Attribute.Label.cellpadding=Cell Padding
-Attribute.Label.cellspacing=Cell Spacing
-Attribute.Label.charset=Charset
-Attribute.Label.cols=Cols
-Attribute.Label.columnClasses=Column Classes
-Attribute.Label.columns=Columns
-Attribute.Label.converter=Converter
-Attribute.Label.coords=Coords
-Attribute.Label.dir=Dir
-Attribute.Label.disabled=Disabled
-Attribute.Label.disabledClass=Disabled Class
-Attribute.Label.enabledClass=Enabled Class
-Attribute.Label.enctype=Enctype
-Attribute.Label.errorClass=Error Class
-Attribute.Label.errorStyle=Error Style
-Attribute.Label.escape=Escape
-Attribute.Label.fatalClass=Fatal Class
-Attribute.Label.fatalStyle=Fatal Style
-Attribute.Label.first=First
-Attribute.Label.footerClass=Footer Class
-Attribute.Label.for=For
-Attribute.Label.frame=Frame
-Attribute.Label.globalOnly=Global Only
-Attribute.Label.headerClass=Header Class
-Attribute.Label.height=Height
-Attribute.Label.hreflang=Hreflang
-Attribute.Label.id=ID
-Attribute.Label.image=Image
-Attribute.Label.immediate=Immediate
-Attribute.Label.infoClass=Info Class
-Attribute.Label.infoStyle=Info Style
-Attribute.Label.ismap=Ismap
-Attribute.Label.lang=Lang
-Attribute.Label.layout=Layout
-Attribute.Label.link=Link
-Attribute.Label.longdesc=Longdesc
-Attribute.Label.maxlength=Max Length
-Attribute.Label.onblur=Onblur
-Attribute.Label.onchange=Onchange
-Attribute.Label.onclick=Onclick
-Attribute.Label.ondblclick=Ondblclick
-Attribute.Label.onfocus=Onfocus
-Attribute.Label.onkeydown=Onkeydown
-Attribute.Label.onkeypress=Onkeypress
-Attribute.Label.onkeyup=Onkeyup
-Attribute.Label.onmousedown=Onmousedown
-Attribute.Label.onmousemove=Onmousemove
-Attribute.Label.onmouseout=Onmouseout
-Attribute.Label.onmouseover=Onmouseover
-Attribute.Label.onmouseup=Onmouseup
-Attribute.Label.onreset=Onreset
-Attribute.Label.onselect=Onselect
-Attribute.Label.onsubmit=Onsubmit
-Attribute.Label.readonly=Read Only
-Attribute.Label.redisplay=Redisplay
-Attribute.Label.rel=Rel
-Attribute.Label.rendered=Rendered
-Attribute.Label.required=Required
-Attribute.Label.rev=Rev
-Attribute.Label.rowClasses=Row Classes
-Attribute.Label.rows=Rows
-Attribute.Label.rules=Rules
-Attribute.Label.shape=Shape
-Attribute.Label.showDetail=Show Detail
-Attribute.Label.showSummary=Show Summary
-Attribute.Label.size=Size
-Attribute.Label.style=Style
-Attribute.Label.styleClass=Style Class
-Attribute.Label.summary=Summary
-Attribute.Label.tabindex=Tab Index
-Attribute.Label.target=Target
-Attribute.Label.title=Title
-Attribute.Label.tooltip=Tooltip
-Attribute.Label.type=Type
-Attribute.Label.url=URL
-Attribute.Label.usemap=Usemap
-Attribute.Label.validator=Validator
-Attribute.Label.value=Value
-Attribute.Label.valueChangeListener=ValueChangeListener
-Attribute.Label.var=Var
-Attribute.Label.warnClass=Warn Class
-Attribute.Label.warnStyle=Warn Style
-Attribute.Label.width=Width
-Category.Label.CSS=CSS
-Category.Label.CSS2=CSS2
-Category.Label.CSS3=CSS3
-Category.Label.CSS4=CSS4
-Category.Label.Event=Event
-Category.Label.HTML=HTML
-Category.Label.JSF=JSF
-Category.Label.Language=Language
-Category.Label.Link=Link
-Category.Label.Table=Table
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfhtml.xml b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfhtml.xml
deleted file mode 100644
index 6ccfbcf..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/configs/cm/jsfhtml.xml
+++ /dev/null
@@ -1,713 +0,0 @@
-<?xml version="1.0" ?>
-<taglib uri="http://java.sun.com/jsf/html">
-	<tag name="column">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-		</category>
-	</tag>
-	<tag name="commandButton">
-		<referedcategory ref="JSF">
-			<includeattrs>
-				<attribute name="action"
-					displaylabel="%Attribute.Label.action" description="action"/>
-				<attribute name="actionListener" type="METHODBINDING"
-					displaylabel="%Attribute.Label.actionListener" />
-			</includeattrs>
-			<excludeattrs
-				refs="converter,validator,valueChangeListener,required" />
-		</referedcategory>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="type" type="ENUMERATED"
-					displaylabel="%Attribute.Label.type">
-					<option key="submit" value="submit" default="default"/>
-					<option key="reset" value="reset" />
-				</attribute>
-				<attribute name="image" type="RELATIVEPATH"
-					typeparam="suffix=jpg;gif;png"
-					displaylabel="%Attribute.Label.image" />
-				<attribute name="alt"
-					displaylabel="%Attribute.Label.alt" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="commandLink">
-		<referedcategory ref="JSF">
-			<includeattrs>
-				<attribute name="action"
-					displaylabel="%Attribute.Label.action" />
-				<attribute name="actionListener" type="METHODBINDING"
-					displaylabel="%Attribute.Label.actionListener" />
-			</includeattrs>
-			<excludeattrs
-				refs="converter,validator,valueChangeListener,required" />
-		</referedcategory>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event">
-			<excludeattrs refs="onchange,onclick,onselect" />
-		</referedcategory>
-		<referedcategory ref="Link" displaylabel="%Category.Label.HTML" />
-	</tag>
-	<tag name="dataTable">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="value"
-				displaylabel="%Attribute.Label.value" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="var" displaylabel="%Attribute.Label.var" />
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-			<attribute name="rows" displaylabel="%Attribute.Label.rows" />
-			<attribute name="first"
-				displaylabel="%Attribute.Label.first" />
-		</category>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS3" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event">
-			<excludeattrs refs="onblur,onchange,onfocus,onselect" />
-		</referedcategory>
-		<referedcategory ref="Table"
-			displaylabel="%Category.Label.HTML" />
-	</tag>
-	<tag name="form">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-		</category>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event">
-			<includeattrs>
-				<attribute name="onreset"
-					displaylabel="%Attribute.Label.onreset" />
-				<attribute name="onsubmit"
-					displaylabel="%Attribute.Label.onsubmit" />
-			</includeattrs>
-			<excludeattrs refs="onblur,onchange,onfocus,onselect" />
-		</referedcategory>
-		<category name="HTML" displaylabel="%Category.Label.HTML">
-			<attribute name="target" type="ENUMERATED"
-				displaylabel="%Attribute.Label.target">
-				<option key="_self" value="_self" />
-				<option key="_blank" value="_blank" />
-				<option key="_parent" value="_parent" />
-				<option key="_top" value="_top" />
-			</attribute>
-			<attribute name="accept"
-				displaylabel="%Attribute.Label.accept" />
-			<attribute name="acceptcharset"
-				displaylabel="%Attribute.Label.acceptcharset" />
-			<attribute name="enctype"
-				displaylabel="%Attribute.Label.enctype" type="ENUMERATED">
-				<option key="application/x-www-form-urlencoded"
-					value="application/x-www-form-urlencoded" default="default"/>
-			</attribute>
-			<attribute name="title"
-				displaylabel="%Attribute.Label.title" />
-		</category>
-	</tag>
-	<tag name="graphicImage">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="value" type="WEBPATH"
-				typeparam="suffix=jpg;gif;png"
-				displaylabel="%Attribute.Label.value" />
-			<attribute name="url" type="WEBPATH"
-				typeparam="suffix=jpg;gif;png" displaylabel="%Attribute.Label.url" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-		</category>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event">
-			<excludeattrs refs="onblur,onchange,onfocus,onselect" />
-		</referedcategory>
-		<category name="HTML" displaylabel="%Category.Label.HTML">
-			<attribute name="ismap" type="NAMED-BOOLEAN"
-				displaylabel="%Attribute.Label.ismap" />
-			<attribute name="longdesc" type="RELATIVEPATH"
-				displaylabel="%Attribute.Label.longdesc" />
-			<attribute name="alt" displaylabel="%Attribute.Label.alt" />
-			<attribute name="height"
-				displaylabel="%Attribute.Label.height" />
-			<attribute name="title"
-				displaylabel="%Attribute.Label.title" />
-			<attribute name="usemap"
-				displaylabel="%Attribute.Label.usemap" />
-			<attribute name="width"
-				displaylabel="%Attribute.Label.width" />
-		</category>
-	</tag>
-	<tag name="inputHidden">
-		<referedcategory ref="JSF" />
-	</tag>
-	<tag name="inputSecret">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="maxlength"
-					displaylabel="%Attribute.Label.maxlength" />
-				<attribute name="redisplay" type="BOOLEAN"
-					displaylabel="%Attribute.Label.redisplay" />
-				<attribute name="alt"
-					displaylabel="%Attribute.Label.alt" />
-				<attribute name="size"
-					displaylabel="%Attribute.Label.size" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="inputText">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="maxlength"
-					displaylabel="%Attribute.Label.maxlength" />
-				<attribute name="alt"
-					displaylabel="%Attribute.Label.alt" />
-				<attribute name="size"
-					displaylabel="%Attribute.Label.size" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="inputTextarea">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="cols"
-					displaylabel="%Attribute.Label.cols" />
-				<attribute name="rows"
-					displaylabel="%Attribute.Label.rows" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="message">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="for" displaylabel="%Attribute.Label.for" required="required"/>
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-			<attribute name="showDetail" type="BOOLEAN"
-				typeparam="default=true" displaylabel="%Attribute.Label.showDetail" />
-			<attribute name="showSummary" type="BOOLEAN"
-				typeparam="default=false"
-				displaylabel="%Attribute.Label.showSummary" />
-		</category>
-		<referedcategory ref="CSS2" displaylabel="%Category.Label.CSS" />
-		<category name="HTML" displaylabel="%Category.Label.HTML">
-			<attribute name="tooltip" type="BOOLEAN"
-				displaylabel="%Attribute.Label.tooltip" />
-			<attribute name="title"
-				displaylabel="%Attribute.Label.title" />
-		</category>
-	</tag>
-	<tag name="messages">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="globalOnly" type="BOOLEAN"
-				typeparam="default=false"
-				displaylabel="%Attribute.Label.globalOnly" />
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-			<attribute name="showDetail" type="BOOLEAN"
-				typeparam="default=false"
-				displaylabel="%Attribute.Label.showDetail" />
-			<attribute name="showSummary" type="BOOLEAN"
-				typeparam="default=true"
-				displaylabel="%Attribute.Label.showSummary" />
-		</category>
-		<referedcategory ref="CSS2" displaylabel="%Category.Label.CSS" />
-		<category name="HTML" displaylabel="%Category.Label.HTML">
-			<attribute name="layout" type="ENUMERATED"
-				displaylabel="%Attribute.Label.layout">
-				<option key="list" value="list" default="default"/>
-				<option key="table" value="table" />
-			</attribute>
-			<attribute name="tooltip" type="BOOLEAN"
-				displaylabel="%Attribute.Label.tooltip" />
-			<attribute name="title"
-				displaylabel="%Attribute.Label.title" />
-		</category>
-	</tag>
-	<tag name="outputFormat">
-		<referedcategory ref="JSF">
-			<excludeattrs
-				refs="validator,valueChangeListener,immediate,required" />
-		</referedcategory>
-		<referedcategory ref="CSS" />
-		<category name="HTML" displaylabel="%Category.Label.HTML">
-			<attribute name="escape" type="BOOLEAN"
-				typeparam="default=true" displaylabel="%Attribute.Label.escape" />
-			<attribute name="title"
-				displaylabel="%Attribute.Label.title" />
-		</category>
-	</tag>
-	<tag name="outputLabel">
-		<referedcategory ref="JSF">
-			<excludeattrs
-				refs="validator,valueChangeListener,immediate,required" />
-		</referedcategory>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event">
-			<excludeattrs refs="onchange,onselect" />
-		</referedcategory>
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="for"
-					displaylabel="%Attribute.Label.for" />
-			</includeattrs>
-			<excludeattrs refs="disabled,readonly" />
-		</referedcategory>
-	</tag>
-	<tag name="outputLink">
-		<referedcategory ref="JSF">
-			<includeattrs>
-				<attribute name="value" type="RELATIVEPATH"
-					displaylabel="%Attribute.Label.value" />
-			</includeattrs>
-			<excludeattrs
-				refs="validator,valueChangeListener,immediate,required" />
-		</referedcategory>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event">
-			<excludeattrs refs="onchange,onselect" />
-		</referedcategory>
-		<referedcategory ref="Link" displaylabel="%Category.Label.HTML" />
-	</tag>
-	<tag name="outputText">
-		<referedcategory ref="JSF">
-			<excludeattrs
-				refs="validator,valueChangeListener,immediate,required" />
-		</referedcategory>
-		<referedcategory ref="CSS" />
-		<category name="HTML" displaylabel="%Category.Label.HTML">
-			<attribute name="escape" type="BOOLEAN"
-				typeparam="default=true" displaylabel="%Attribute.Label.escape" />
-			<attribute name="title"
-				displaylabel="%Attribute.Label.title" />
-		</category>
-	</tag>
-	<tag name="panelGrid">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-		</category>
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS3" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event">
-			<excludeattrs refs="onblur,onchange,onfocus,onselect" />
-		</referedcategory>
-		<referedcategory ref="Table"
-			displaylabel="%Category.Label.HTML">
-			<includeattrs>
-				<attribute name="columns"
-					displaylabel="%Attribute.Label.columns" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="panelGroup">
-		<category name="JSF" displaylabel="%Category.Label.JSF">
-			<attribute name="id" displaylabel="%Attribute.Label.id" />
-			<attribute name="binding" type="PROPERTYBINDING"
-				displaylabel="%Attribute.Label.binding" />
-			<attribute name="rendered" type="BOOLEAN"
-				displaylabel="%Attribute.Label.rendered" />
-		</category>
-		<referedcategory ref="CSS" />
-	</tag>
-	<tag name="selectBooleanCheckbox">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML" />
-	</tag>
-	<tag name="selectManyCheckbox">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="layout" type="ENUMERATED"
-					displaylabel="%Attribute.Label.layout">
-					<option key="lineDirection" value="lineDirection" default="default" />
-					<option key="pageDirection" value="pageDirection" />
-				</attribute>
-				<attribute name="border"
-					displaylabel="%Attribute.Label.border" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="selectManyListbox">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="size"
-					displaylabel="%Attribute.Label.size" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="selectManyMenu">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML" />
-	</tag>
-	<tag name="selectOneListbox">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="size"
-					displaylabel="%Attribute.Label.size" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<tag name="selectOneMenu">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML" />
-	</tag>
-	<tag name="selectOneRadio">
-		<referedcategory ref="JSF" />
-		<referedcategory ref="Language" />
-		<referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" />
-		<referedcategory ref="Event" />
-		<referedcategory ref="HTML">
-			<includeattrs>
-				<attribute name="layout" type="ENUMERATED"
-					displaylabel="%Attribute.Label.layout">
-					<option key="lineDirection" value="lineDirection" default="default" />
-					<option key="pageDirection" value="pageDirection" />
-				</attribute>
-				<attribute name="border"
-					displaylabel="%Attribute.Label.border" />
-			</includeattrs>
-		</referedcategory>
-	</tag>
-	<definition>
-		<categories>
-			<category name="JSF" displaylabel="%Category.Label.JSF">
-				<attribute name="id" displaylabel="%Attribute.Label.id" />
-				<attribute name="value"
-					displaylabel="%Attribute.Label.value" />
-				<attribute name="binding" type="PROPERTYBINDING"
-					displaylabel="%Attribute.Label.binding" />
-				<attribute name="converter"
-					displaylabel="%Attribute.Label.converter" />
-				<attribute name="validator" type="METHODBINDING"
-					displaylabel="%Attribute.Label.validator" />
-				<attribute name="valueChangeListener"
-					type="METHODBINDING"
-					displaylabel="%Attribute.Label.valueChangeListener" />
-				<attribute name="immediate" type="BOOLEAN"
-					displaylabel="%Attribute.Label.immediate" />
-				<attribute name="rendered" type="BOOLEAN"
-					displaylabel="%Attribute.Label.rendered" />
-				<attribute name="required" type="BOOLEAN"
-					displaylabel="%Attribute.Label.required" />
-			</category>
-			<category name="Language"
-				displaylabel="%Category.Label.Language">
-				<referedattribute ref="lang" />
-				<attribute name="dir" type="ENUMERATED"
-					displaylabel="%Attribute.Label.dir">
-					<option key="RTL" value="RTL" />
-					<option key="LTR" value="LTR" />
-				</attribute>
-			</category>
-			<category name="CSS" displaylabel="%Category.Label.CSS">
-				<attribute name="style" type="CSSSTYLE"
-					typeparam="style=STYLE" displaylabel="%Attribute.Label.style" />
-				<attribute name="styleClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.styleClass" />
-			</category>
-			<category name="Event"
-				displaylabel="%Category.Label.Event">
-				<attribute name="onblur" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onblur" />
-				<attribute name="onchange" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onchange" />
-				<attribute name="onclick" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onclick" />
-				<attribute name="ondblclick" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.ondblclick" />
-				<attribute name="onfocus" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onfocus" />
-				<attribute name="onkeydown" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onkeydown" />
-				<attribute name="onkeypress" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onkeypress" />
-				<attribute name="onkeyup" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onkeyup" />
-				<attribute name="onmousedown" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onmousedown" />
-				<attribute name="onmousemove" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onmousemove" />
-				<attribute name="onmouseout" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onmouseout" />
-				<attribute name="onmouseover" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onmouseover" />
-				<attribute name="onmouseup" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onmouseup" />
-				<attribute name="onselect" type="JAVASCRIPT"
-					displaylabel="%Attribute.Label.onselect" />
-			</category>
-			<category name="HTML" displaylabel="%Category.Label.HTML">
-				<attribute name="accesskey"
-					displaylabel="%Attribute.Label.accesskey" />
-				<attribute name="disabled" type="BOOLEAN"
-					displaylabel="%Attribute.Label.disabled" />
-				<attribute name="readonly" type="BOOLEAN"
-					displaylabel="%Attribute.Label.readonly" />
-				<attribute name="title"
-					displaylabel="%Attribute.Label.title" />
-				<attribute name="tabindex"
-					displaylabel="%Attribute.Label.tabindex" />
-			</category>
-			<category name="Link" displaylabel="%Category.Label.Link">
-				<attribute name="accesskey"
-					displaylabel="%Attribute.Label.accesskey" />
-				<attribute name="title"
-					displaylabel="%Attribute.Label.title" />
-				<attribute name="tabindex"
-					displaylabel="%Attribute.Label.tabindex" />
-				<attribute name="charset"
-					displaylabel="%Attribute.Label.charset" />
-				<referedattribute ref="lang" overridename="hreflang"
-					displaylabel="%Attribute.Label.hreflang" />
-				<referedattribute ref="link" overridename="rel"
-					displaylabel="%Attribute.Label.rel" />
-				<attribute name="shape" type="ENUMERATED"
-					displaylabel="%Attribute.Label.shape">
-					<option key="default"
-						value="Entire region" default="default"/>
-					<option key="circle" value="Circular region" />
-					<option key="rect" value="Rectangular region" />
-					<option key="poly" value="Polygonal region" />
-				</attribute>
-				<attribute name="target" type="ENUMERATED"
-					displaylabel="%Attribute.Label.target">
-					<option key="_self" value="_self" />
-					<option key="_blank" value="_blank" />
-					<option key="_parent" value="_parent" />
-					<option key="_top" value="_top" />
-				</attribute>
-				<attribute name="coords"
-					displaylabel="%Attribute.Label.coords" />
-				<referedattribute ref="link" overridename="rev"
-					displaylabel="%Attribute.Label.rev" />
-				<attribute name="type"
-					displaylabel="%Attribute.Label.type" />
-			</category>
-			<category name="CSS2" displaylabel="%Category.Label.CSS2">
-				<attribute name="style" type="CSSSTYLE"
-					typeparam="style=STYLE" displaylabel="%Attribute.Label.style" />
-				<attribute name="styleClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.styleClass" />
-				<attribute name="infoStyle" type="CSSSTYLE"
-					displaylabel="%Attribute.Label.infoStyle" />
-				<attribute name="infoClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.infoClass" />
-				<attribute name="warnStyle" type="CSSSTYLE"
-					displaylabel="%Attribute.Label.warnStyle" />
-				<attribute name="warnClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.warnClass" />
-				<attribute name="errorStyle" type="CSSSTYLE"
-					displaylabel="%Attribute.Label.errorStyle" />
-				<attribute name="errorClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.errorClass" />
-				<attribute name="fatalStyle" type="CSSSTYLE"
-					displaylabel="%Attribute.Label.fatalStyle" />
-				<attribute name="fatalClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.fatalClass" />
-			</category>
-			<category name="CSS3" displaylabel="%Category.Label.CSS3">
-				<attribute name="style" type="CSSSTYLE"
-					typeparam="style=STYLE" displaylabel="%Attribute.Label.style" />
-				<attribute name="styleClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.styleClass" />
-				<attribute name="columnClasses" type="CSSCLASS"
-					typeparam="," displaylabel="%Attribute.Label.columnClasses" />
-				<attribute name="footerClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.footerClass" />
-				<attribute name="headerClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.headerClass" />
-				<attribute name="rowClasses" type="CSSCLASS"
-					typeparam="separator=," displaylabel="%Attribute.Label.rowClasses" />
-			</category>
-			<category name="CSS4" displaylabel="%Category.Label.CSS4">
-				<attribute name="style" type="CSSSTYLE"
-					typeparam="style=STYLE" displaylabel="%Attribute.Label.style" />
-				<attribute name="styleClass" type="CSSCLASS"
-					typeparam=" " displaylabel="%Attribute.Label.styleClass" />
-				<attribute name="disabledClass" type="CSSCLASS"
-					typeparam="" displaylabel="%Attribute.Label.disabledClass" />
-				<attribute name="enabledClass" type="CSSCLASS"
-					typeparam="" displaylabel="%Attribute.Label.enabledClass" />
-			</category>
-			<category name="Table"
-				displaylabel="%Category.Label.Table">
-				<attribute name="bgcolor" type="COLOR"
-					displaylabel="%Attribute.Label.bgcolor" />
-				<attribute name="border"
-					displaylabel="%Attribute.Label.border" />
-				<attribute name="cellpadding"
-					displaylabel="%Attribute.Label.cellpadding" />
-				<attribute name="cellspacing"
-					displaylabel="%Attribute.Label.cellspacing" />
-				<attribute name="width"
-					displaylabel="%Attribute.Label.width" />
-				<attribute name="frame" type="ENUMERATED"
-					displaylabel="%Attribute.Label.frame">
-					<option key="lhs" value="Left hand side only" />
-					<option key="above" value="Top side only" />
-					<option key="none" value="No sides" default="default"/>
-					<option key="box" value="All four sides" />
-					<option key="vsides"
-						value="Right and left sides only" />
-					<option key="below" value="Bottom side only" />
-					<option key="border" value="All four sides" />
-					<option key="rhs" value="Right hand side only" />
-					<option key="hsides"
-						value="Top and bottom sides only" />
-				</attribute>
-				<attribute name="rules" type="ENUMERATED"
-					displaylabel="%Attribute.Label.rules">
-					<option key="cols" value="Between columns only" />
-					<option key="groups" value="Between row groups" />
-					<option key="rows" value="Between rows only" />
-					<option key="none" value="No rules" default="default"/>
-					<option key="all"
-						value="Between all rows and columns" />
-				</attribute>
-				<attribute name="summary"
-					displaylabel="%Attribute.Label.summary" />
-				<attribute name="title"
-					displaylabel="%Attribute.Label.title" />
-			</category>
-		</categories>
-		<attributes>
-			<attribute name="lang" type="ENUMERATED"
-				displaylabel="%Attribute.Label.lang">
-				<option key="af" value="af Afrikaans" />
-				<option key="ar" value="ar Arabic (needs subtype)" />
-				<option key="be" value="be Belarusian" />
-				<option key="bg" value="bg Bulgarian" />
-				<option key="br" value="br Breton" />
-				<option key="ca" value="ca Catalan" />
-				<option key="cs" value="cs Czech" />
-				<option key="da" value="da Danish" />
-				<option key="de" value="de German (Standard)" />
-				<option key="el" value="el Greek" />
-				<option key="en" value="en English" />
-				<option key="es" value="es Spanish (Spain)" />
-				<option key="et" value="et Estonian" />
-				<option key="eu" value="eu Basque" />
-				<option key="fa" value="fa Farsi" />
-				<option key="fi" value="fi Finnish" />
-				<option key="fo" value="fo Faeroese" />
-				<option key="fr" value="fr French (Standard)" />
-				<option key="gd" value="gd Gaelic (Scotland)" />
-				<option key="he" value="he Hebrew" />
-				<option key="hi" value="hi Hindi" />
-				<option key="hr" value="hr Croatian" />
-				<option key="hu" value="hu Hungarian" />
-				<option key="id" value="id Indonesian" />
-				<option key="is" value="is Icelandic" />
-				<option key="it" value="it Italian (Standard)" />
-				<option key="ja" value="ja Japanese" />
-				<option key="ko" value="ko Korean" />
-				<option key="lt" value="lt Lithuanian" />
-				<option key="lv" value="lv Latvian" />
-				<option key="mk" value="mk Macedonian" />
-				<option key="ms" value="ms Malaysian" />
-				<option key="mt" value="mt Maltese" />
-				<option key="nl" value="nl Dutch (Standard)" />
-				<option key="no" value="no Norwegian (Bokmal/Nynorsk)" />
-				<option key="pl" value="pl Polish" />
-				<option key="pt" value="pt Portuguese (Standard)" />
-				<option key="rm" value="rm Rhaeto-Romanic" />
-				<option key="ro" value="ro Romanian" />
-				<option key="ru" value="ru Russian" />
-				<option key="sk" value="sk Slovak" />
-				<option key="sl" value="sl Slovenian" />
-				<option key="sq" value="sq Albanian" />
-				<option key="sr" value="sr Serbian (Cyrillic/Latin)" />
-				<option key="sv" value="sv Swedish" />
-				<option key="sx" value="sx Sutu" />
-				<option key="sz" value="sz Sami (Lappish)" />
-				<option key="th" value="th Thai" />
-				<option key="tn" value="tn Setswana" />
-				<option key="tr" value="tr Turkish" />
-				<option key="ts" value="ts Tsonga" />
-				<option key="uk" value="uk Ukrainian" />
-				<option key="ur" value="ur Urdu" />
-				<option key="vi" value="vi Vietnamese" />
-				<option key="xh" value="xh Xhosa" />
-				<option key="yi" value="yi Yiddish" />
-				<option key="zh" value="zh Chinese (needs subtype)" />
-				<option key="zu" value="zu Zulu" />
-			</attribute>
-			<attribute name="link" type="MULTICHOICE" typeparam=" "
-				displaylabel="%Attribute.Label.link">
-				<option key="index" value="index" />
-				<option key="subsection" value="subsection" />
-				<option key="bookmark" value="bookmark" />
-				<option key="start" value="start" />
-				<option key="next" value="next" />
-				<option key="stylesheet" value="stylesheet" />
-				<option key="chapter" value="chapter" />
-				<option key="help" value="help" />
-				<option key="alternate" value="alternate" />
-				<option key="appendix" value="appendix" />
-				<option key="contents" value="contents" />
-				<option key="section" value="section" />
-				<option key="prev" value="prev" />
-				<option key="glossary" value="glossary" />
-				<option key="copyright" value="copyright" />
-			</attribute>
-		</attributes>
-	</definition>
-
-</taglib>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml
index 7c5bbc6..f148ced 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml
@@ -16,310 +16,10 @@
 				tagName="loadBundle" />
 		</taglib>
 	</extension>
-
-	<!-- element and attribute meta data -->
-	<!-- DISABLE CMREGISTRY ITEMS
-		<extension point="org.eclipse.jst.pagedesigner.cmRegistry">
-		<registry configFile="configs/cm/jsfcore.xml"
-		uri="http://java.sun.com/jsf/core" />
-		<registry configFile="configs/cm/jsfhtml.xml"
-		uri="http://java.sun.com/jsf/html" />
-		</extension>
-	-->
-
 	<extension
 		point="org.eclipse.ui.views.properties.tabbed.propertySections">
 		<propertySections
 			contributorId="org.eclipse.jst.pagedesigner.tabPropertyContributor">
-			<!-- Disable sections /delete later
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreActionListenerSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.actionListener">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="actionListener" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreAttributeSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.attribute">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="attribute" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConverterSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.converter">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="converter" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreFacetSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.facet">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="facet" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreLoadBundleSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.loadBundle">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="loadBundle" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreParamSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.param">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="param" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSelectItemSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectItem">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="selectItem" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSelectItemsSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectItems">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="selectItems" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSubviewSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.subview">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="subview" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateDoubleRangeSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.validateDoubleRange">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="validateDoubleRange" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateLengthSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.validateLength">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="validateLength" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateLongRangeSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.validateLongRange">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="validateLongRange" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidatorSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.validator">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="validator" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValueChangeListenerSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.valueChangeListener">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="valueChangeListener" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreVerbatimSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.verbatim">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="verbatim" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreViewSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.view">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/core" tagName="view" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlColumnSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.column">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="column" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlCommandButtonSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.commandButton">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="commandButton" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlCommandLinkSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.commandLink">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="commandLink" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlDataTableSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.dataTable">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="dataTable" />
-				</propertySection>			
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlFormSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.form">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="form" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlGraphicImageSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.graphicImage">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="graphicImage" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputHiddenSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.inputHidden">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="inputHidden" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlMessageSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.message">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="message" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlMessagesSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.messages">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="messages" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputFormatSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.outputFormat">
-				<input
-				type="org.eclipse.jst.pagedesigner.jsf.ui.Input1">
-				</input>
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="outputFormat" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.inputText">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="inputText" />
-				</propertySection>			
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputLabelSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.outputLabel">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="outputLabel" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputLinkSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.outputLink">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="outputLink" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputTextSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.outputText">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="outputText" />
-				</propertySection>
-				<propertySection
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextareaSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.inputTextarea">
-				</propertySection>
-				
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlPanelGridSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.panelGrid">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="panelGrid" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlPanelGroupSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.panelGroup">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="panelGroup" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectBooleanCheckboxSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectBooleanCheckbox">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="selectBooleanCheckbox" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyCheckboxSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectManyCheckbox">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="selectManyCheckbox" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyListboxSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectManyListbox">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="selectManyListbox" />
-				</propertySection>			
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyMenuSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectManyMenu">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="selectManyMenu" />
-				</propertySection>			
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputSecretSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.inputSecret">
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneListboxSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectOneListbox">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="selectOneListbox" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneMenuSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectOneMenu">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="selectOneMenu" />
-				</propertySection>
-				<propertySection afterSection="top"
-				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneRadioSection"
-				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
-				id="section.general.selectOneRadio">
-				<tagFilter caseSensitive="true"
-				uri="http://java.sun.com/jsf/html" tagName="selectOneRadio" />
-				</propertySection>	
-			-->
 			<propertySection
 				class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConvertDateTimeGroup"
 				tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml b/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml
index 396a067..bc987d9 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml
@@ -1,7 +1,6 @@
 <?eclipse version="3.0"?>
 <plugin>
 	<extension-point id="pageDesignerExtension" name="Web Page Editor Extension" schema="schema/pageDesignerExtension.exsd" />
-	<extension-point id="propertySections" name="Property Section" schema="schema/propertySections.exsd" />
 	<extension-point id="propertyContributor" name="property contributor" schema="schema/propertyContributor.exsd" />
 	<extension-point id="popupMenuContributor" name="popupMenu Contributor" schema="schema/popupMenuContributor.exsd"/>
 	<extension-point id="cmRegistry" name="Content Model Meta Data" schema="schema/cmRegistry.exsd"/>
@@ -180,22 +179,6 @@
    </extension>
 
  <extension
-         point="org.eclipse.jst.jsf.common.domainSourceModelTypes">
-      <domainSourceModelTypes
-            domainId="TagLibraryDomain"
-            domainSourceModelTypeId="SybaseCMConfigContentModelHandler"
-            locator="org.eclipse.jst.pagedesigner.internal.metadata.SybaseCMConfigMetaDataLocator"
-            ordinal="0">
-     </domainSourceModelTypes>
- </extension>
- <extension
-       point="org.eclipse.jst.jsf.common.domainSourceModelTypeTranslators">
-    <domainSourceModelTypeTranslator
-          domainSourceModelTypeId="SybaseCMConfigContentModelHandler"
-          translatorClass="org.eclipse.jst.pagedesigner.internal.metadata.SybaseCMConfigMetaDataTranslator">
-    </domainSourceModelTypeTranslator>
- </extension>
- <extension
        point="org.eclipse.ui.contexts">
     <context
           description="%editor.binding.context.description"
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/propertyContributor.exsd b/jsf/plugins/org.eclipse.jst.pagedesigner/schema/propertyContributor.exsd
index faf3ce6..934161d 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/propertyContributor.exsd
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/schema/propertyContributor.exsd
@@ -1,16 +1,21 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.pagedesigner">
+<schema targetNamespace="org.eclipse.jst.pagedesigner" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
-      <appInfo>
+      <appinfo>
          <meta.schema plugin="org.eclipse.jst.pagedesigner" id="propertyContributor" name="property contributor"/>
-      </appInfo>
+      </appinfo>
       <documentation>
-         &lt;p&gt;&lt;b&gt;This extension point is provisional and subject to change&lt;/b&gt;&lt;/p&gt;
+         &lt;p&gt;&lt;b&gt;This extension point is unused and deprecated, and will be removed&lt;/b&gt;&lt;/p&gt;
       </documentation>
    </annotation>
 
    <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element deprecated="true"/>
+         </appinfo>
+      </annotation>
       <complexType>
          <sequence>
             <element ref="propertyContributor" minOccurs="0" maxOccurs="unbounded"/>
@@ -40,33 +45,41 @@
    </element>
 
    <element name="propertyContributor">
+      <annotation>
+         <appinfo>
+            <meta.element deprecated="true"/>
+         </appinfo>
+      </annotation>
       <complexType>
          <attribute name="sectionDescriptorProvider" type="string" use="required">
             <annotation>
                <documentation>
                   
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute kind="java"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
    </element>
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="since"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          2.0
       </documentation>
    </annotation>
 
+
+
+
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="copyright"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          Copyright 2006 Sybase and others
 All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/propertySections.exsd b/jsf/plugins/org.eclipse.jst.pagedesigner/schema/propertySections.exsd
deleted file mode 100644
index 51218c6..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/propertySections.exsd
+++ /dev/null
@@ -1,150 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.pagedesigner">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jst.pagedesigner" id="propertySections" name="Property Sections"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;&lt;b&gt;This extension point is deprecated and will be removed before WTP 3.0GA.&lt;/b&gt;&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="propertySections"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The identifier of the extension point, i.e. &lt;tt&gt;org.eclipse.wst.ui.properties.propertySections&lt;/tt&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertySections">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <documentation>
-            see http://wiki.eclipse.org/Enhancements_to_WPE_Property_Pages
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="propertySection" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="propertySection">
-      <complexType>
-         <sequence>
-            <element ref="tagFilter" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="tab" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The tab in which this section appears.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id for the section.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class that implements the section, i.e. implements &lt;tt&gt;org.eclipse.wst.ui.properties.IPropertySection&lt;/tt&gt;.
-Or, the class could extends &lt;code&gt;AttributeGroup&lt;/code&gt;, in that case, system will automatically create a &lt;code&gt;AttributeGroupSection&lt;/code&gt; for it.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="afterSection" type="string">
-            <annotation>
-               <documentation>
-                  When there is more than one section in a tab, sections are sorted by the afterSection attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filter" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements a ISectionFilter
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="tagFilter">
-      <complexType>
-         <attribute name="uri" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="tagName" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="caseSensitive" type="boolean" use="default" value="true">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         2.0
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         deprecated and unused
-      </documentation>
-   </annotation>
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright 2006 Sybase and others
-All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataLocator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataLocator.java
deleted file mode 100644
index 6c259f5..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataLocator.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle Corporation and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.pagedesigner.internal.metadata;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-
-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.jst.jsf.common.metadata.internal.AbstractMetaDataLocator;
-import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataLocator;
-import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider;
-import org.eclipse.jst.pagedesigner.IJMTConstants;
-import org.eclipse.jst.pagedesigner.PDPlugin;
-import org.eclipse.jst.pagedesigner.meta.ICMRegistry;
-import org.eclipse.jst.pagedesigner.meta.internal.SimpleCMRegistry;
-import org.osgi.framework.Bundle;
-import org.xml.sax.SAXException;
-
-/**
- * Locates Sybase CM config metadata files. 
- * 
- * Supplied to ease migration to JSF Common meta data by allowing current MD into JSF common md format.
- * 
- * @deprecated this will be disappearing along with all of the Sybase meta data 
- * and supporting classes before Ganymede release
- *
- */
-public class SybaseCMConfigMetaDataLocator extends AbstractMetaDataLocator {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataLocator#locateMetaDataModelProviders(java.lang.String)
-	 */
-	public List locateMetaDataModelProviders(String uri) {
-//		if (1==1)
-//			return null; //temp... turn off translation!
-		
-		List <ICMRegistry> registries = findCMRegistries(uri);
-		if (! registries.isEmpty()) {
-			List <IMetaDataSourceModelProvider> providers = new ArrayList<IMetaDataSourceModelProvider>(registries.size());
-			for (ICMRegistry reg : registries) {
-				if (reg.getSupportedURI().equals(uri)) {
-					providers.add(createMetaDataSourceProvider(reg));
-				}
-			}
-			return providers;
-		}
-		return null;
-	}
-
-	private List<ICMRegistry> findCMRegistries(String uri) {
-		List<ICMRegistry> contributedRegistries = new ArrayList<ICMRegistry>();
-		IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
-				.getExtensionPoint(PDPlugin.getPluginId(),
-						IJMTConstants.EXTENSION_POINT_CMREGISTRY);
-		IConfigurationElement[] eles = extensionPoint
-				.getConfigurationElements();
-
-		for (int i = 0; i < eles.length; i++) {
-			if (eles[i].getName().equals("registry")) {
-				String cmUri = eles[i].getAttribute("uri");
-				if (cmUri != null && cmUri.equals(uri)) {
-					String configFile = eles[i].getAttribute("configFile");
-					if (configFile != null && configFile.length() > 0) {
-						String bundleName = eles[i].getDeclaringExtension()
-								.getContributor().getName();
-						try {
-							Bundle bundle = Platform.getBundle(bundleName);
-							URL cmFileUrl = bundle.getEntry(configFile);
-							SimpleCMRegistry reg = new SimpleCMRegistry(uri,
-									cmFileUrl);
-							contributedRegistries.add(reg);
-						} catch (ParserConfigurationException e) {
-			                PDPlugin.getLogger(getClass()).error(new Throwable(e));
-			            } catch (FactoryConfigurationError e) {
-			                PDPlugin.getLogger(getClass()).error(new Throwable(e));                    
-			            } catch (SAXException e) {
-			                PDPlugin.getLogger(getClass()).error(new Throwable(e));
-			            } catch (IOException e) {
-			                PDPlugin.getLogger(getClass()).error(new Throwable(e));
-			            }
-					}
-					String className = eles[i].getAttribute("class");
-					if (className != null && className.length() > 0) {
-						try {
-							Object obj = eles[i].createExecutableExtension("class");
-							
-							if (obj instanceof ICMRegistry) {
-								contributedRegistries.add((ICMRegistry)obj);
-							}
-						} catch (CoreException e) {
-						    PDPlugin.getLogger(getClass()).error(new Throwable(e));
-						}
-					}
-				}
-			}
-		}
-		return contributedRegistries;
-	}
-	
-	private IMetaDataSourceModelProvider createMetaDataSourceProvider(ICMRegistry reg) {		
-		IMetaDataSourceModelProvider provider = new SybaseCMConfigMetadataProvider(reg);
-		provider.setLocator(this);
-		return provider;
-	}
-
-	/* 
-	 * Does nothing.
-	 */
-	public void startLocating() {
-		//do nothing
-	}
-
-	/* 
-	 * Does nothing.
-	 */
-	public void stopLocating() {
-		//do nothing
-	}
-
-	/**
-	 *
-	 */
-	public class SybaseCMConfigMetadataProvider implements IMetaDataSourceModelProvider {
-		private IMetaDataLocator _locator;
-		private ICMRegistry _reg;
-		/**
-		 * Construct from ICMRegsistry
-		 * @param reg
-		 */
-		public SybaseCMConfigMetadataProvider(ICMRegistry reg) {
-			_reg = reg;
-		}
-
-		public Object getSourceModel() {
-			return _reg;
-		}
-		
-		public IMetaDataLocator getLocator() {
-			return _locator;
-		}
-
-		public void setLocator(IMetaDataLocator locator) {
-			_locator = locator;
-		}
-		
-		public Object getAdapter(Class adapter) {
-			// TODO Auto-generated method stub
-			return null;
-		}
-	}	
-}
-
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataTranslator.java
deleted file mode 100644
index 4ff0a8a..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataTranslator.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle Corporation and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Oracle Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.pagedesigner.internal.metadata;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.emf.ecore.xml.type.SimpleAnyType;
-import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
-import org.eclipse.jst.jsf.common.metadata.Entity;
-import org.eclipse.jst.jsf.common.metadata.MetadataFactory;
-import org.eclipse.jst.jsf.common.metadata.Model;
-import org.eclipse.jst.jsf.common.metadata.Trait;
-import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant;
-import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider;
-import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator;
-import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.ListOfValues;
-import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.TraitTypesFactory;
-import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
-import org.eclipse.jst.pagedesigner.meta.IAttributeRuntimeValueType;
-import org.eclipse.jst.pagedesigner.meta.IElementDescriptor;
-import org.eclipse.jst.pagedesigner.meta.OLDIValueType;
-import org.eclipse.jst.pagedesigner.meta.internal.SimpleCMRegistry;
-
-/**
- * Translates Sybase MD into JSF common MD and attribute value type system.
- * 
- * Supplied to ease migration to JSF Common meta data by allowing current MD into JSF common md format.
- * 
- * @deprecated this will be disappearing along with all of the Sybase meta data 
- * and supporting classes before Ganymede release
- *
- */
-public class SybaseCMConfigMetaDataTranslator implements IMetaDataTranslator {
-	private static final String ATTR_VAL_RUNTIME_TYPE = "attribute-value-runtime-type";
-	private IMetaDataModelMergeAssistant _assistant;
-
-	public boolean canTranslate(IMetaDataSourceModelProvider modelProvider) {		
-		if (modelProvider.getSourceModel() != null && 
-				modelProvider.getSourceModel() instanceof SimpleCMRegistry)
-			return true;
-		return false;
-	}
-	
-	public void translate(IMetaDataModelMergeAssistant assistant) {
-		_assistant = assistant;
-		SimpleCMRegistry reg = (SimpleCMRegistry)assistant.getSourceModelProvider().getSourceModel();
-		traverseCMRegistryModel(reg);
-	}
-
-	private void traverseCMRegistryModel(SimpleCMRegistry reg){
-		for (Iterator it=reg.getMap().entrySet().iterator(); it.hasNext();){
-		    Map.Entry entry = (Map.Entry)it.next();			
-			IElementDescriptor tagElem = (IElementDescriptor)entry.getValue();
-			findOrCreateTag(tagElem);
-		}
-	}
-	
-	private void findOrCreateTag(IElementDescriptor tagElem) {
-		Entity tag =_assistant.getMergedEntity(getMergedModel(), tagElem.getTagName());
-		if (tag == null){
-			tag = internalCreateTagEntity(tagElem);
-			getMergedModel().getChildEntities().add(tag);
-		}
-		createTagTraits(tag, tagElem);
-		createAttributeEntities(tag, tagElem);
-	}
-
-	private void createAttributeEntities(Entity tag, IElementDescriptor tagElem) {
-		for (IAttributeDescriptor attrDesc : tagElem.getAttributeDescriptors()){
-			Entity attr =_assistant.getMergedEntity(tag, attrDesc.getAttributeName());
-			if (attr == null) {
-				attr = internalCreateAttributeEntity(attrDesc);
-				tag.getChildEntities().add(attr);
-			}
-			createAttributeTraits(attr, attrDesc);
-		}
-		if (tagElem.getReference() != null) {
-			//create attributes from referenced tag
-			createAttributeEntities(tag,tagElem.getReference());
-		}
-	}
-
-	private void createAttributeTraits(Entity attr,
-			IAttributeDescriptor attrDesc) {
-		
-		//convert ValueType to runtime-attrib-values
-		convertValueType(attr, attrDesc);
-
-		createTraitAndSimpleAnyTypeValue(attr, "display-label", attrDesc.getLabelString());
-		createTraitAndSimpleAnyTypeValue(attr, "description", attrDesc.getDescription());
-		createTraitAndSimpleAnyTypeValue(attr, "default-value", attrDesc.getDefaultValue());
-		createTraitAndSimpleAnyTypeValue(attr, IPropertyPageDescriptor.PROP_DESC_CATEGORY, attrDesc.getCategory());
-		createTraitAndSimpleAnyTypeValue(attr, "required", String.valueOf(attrDesc.isRequired()));
-		
-		
-		
-	}
-
-	private void createTraitAndSimpleAnyTypeValue(Entity attr, String traitKey,
-			String traitValue) {
-		
-		if (traitValue != null && traitValue.trim().length() > 0) {
-			Trait trait = createTrait(attr, traitKey);
-			setTraitValueUsingSimpleAnyType(trait, traitValue);	
-			attr.getTraits().add(trait);
-		}
-	}
-
-	private void convertValueType(Entity attr, IAttributeDescriptor attrDesc) {
-		if (hasTrait(attr, ATTR_VAL_RUNTIME_TYPE)){
-			return;
-		}
-		String rtType = null;
-		String valType = attrDesc.getValueType();
-		Trait trait = createTrait(attr, ATTR_VAL_RUNTIME_TYPE);
-		if (OLDIValueType.ENUMERATED.equals(valType)){
-			if ("lang".equalsIgnoreCase(attrDesc.getAttributeName()))
-				rtType = IAttributeRuntimeValueType.LANGUAGECODE;
-//			else if ()
-			else {
-				rtType = IAttributeRuntimeValueType.STRING;
-				createPossibleValuesAndValidValueTraits(attr, attrDesc);
-			}
-		}
-		else if (OLDIValueType.BOOLEAN.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.BOOLEAN;
-		}
-		else if (OLDIValueType.CLASSNAME.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.JAVACLASS;
-			//"superType=I:javax.faces.event.ActionListener" 
-			int colonIndex = attrDesc.getTypeParameter().lastIndexOf(":");
-			String superTypeValue= attrDesc.getTypeParameter().substring(colonIndex+1);
-			String superTypeType= attrDesc.getTypeParameter().substring(colonIndex-1,colonIndex);
-			if (superTypeType.equalsIgnoreCase("I"))
-				createTraitAndSimpleAnyTypeValue(attr, "valid-interfaces", superTypeValue);
-			else
-				createTraitAndSimpleAnyTypeValue(attr, "valid-superclass", superTypeValue);
-		}
-		else if (OLDIValueType.CLASSPATH_RESOURCE.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.RESOURCEBUNDLE;
-		}
-		else if (OLDIValueType.COLOR.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.COLOR;
-		}
-		else if (OLDIValueType.CSSCLASS.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.CSSCLASS;
-		}
-		else if (OLDIValueType.CSSID.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.CSSID;
-		}
-		else if (OLDIValueType.CSSSTYLE.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.CSSSTYLE;
-		}
-		else if (OLDIValueType.CURRENCYCODE.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.CURRENCYCODE;
-		}
-		else if (OLDIValueType.JAVASCRIPT.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.SCRIPT;
-		}
-		else if (OLDIValueType.LINK.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.LINK;
-		}
-		else if (OLDIValueType.LOCALE.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.LOCALE;
-		}
-		else if (OLDIValueType.METHODBINDING.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.METHODBINDING;
-			if (attr.getId().equals("validator"))			
-				createValidatorParams(attr);
-			else if (attr.getId().equals("actionListener")){
-				Trait t = createTrait(attr, "runtime-param-types");
-				t.setValue(createAndSetSimpleAnyTypeValue("javax.faces.event.ActionEvent"));
-				attr.getTraits().add(t);
-			}
-			else if (attr.getId().equals("valueChangeListener")){
-				Trait t = createTrait(attr, "runtime-param-types");
-				t.setValue(createAndSetSimpleAnyTypeValue("javax.faces.event.ValueChangeEvent"));
-				attr.getTraits().add(t);
-			}
-			Trait t2 = createTrait(attr, "runtime-return-type");
-			t2.setValue(createAndSetSimpleAnyTypeValue("void"));	
-			attr.getTraits().add(t2);
-		}
-		else if (OLDIValueType.MULTICHOICE.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.STRING;
-		}
-		else if (OLDIValueType.NAMED_BOOLEAN.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.BOOLEAN;
-		}
-		else if (OLDIValueType.PROPERTYBINDING.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.VALUEBINDING;
-		}
-		else if (OLDIValueType.RELATIVEPATH.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.RELATIVEPATH;
-		}
-		else if (OLDIValueType.TIMEZONE.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.TIMEZONE;
-		}
-		else if (OLDIValueType.WEBPATH.equals(valType)) {
-			rtType = IAttributeRuntimeValueType.WEBPATH;
-//			createWebPathValidExtensionsTrait(attr, attrDesc);
-		}
-		else
-			rtType = IAttributeRuntimeValueType.STRING;
-		
-		setTraitValueUsingSimpleAnyType(trait, rtType.toString());		
-		setTypeParamsIfAny(attr, attrDesc);
-		attr.getTraits().add(trait);
-	}
-
-	private void setTypeParamsIfAny(Entity attr, IAttributeDescriptor attrDesc) {
-		//this method is relying on the fact that only one typeParam is being set.   this is all that was ever done by the Sybase config
-		if (attrDesc.getTypeParameter()!= null){
-			String typeParam = attrDesc.getTypeParameter(); 
-			if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_SUFFIX) > -1){
-				int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_SUFFIX);
-				String suffixes = typeParam.substring(i+IAttributeDescriptor.PARAMETER_SUFFIX.length()+1);
-				Trait trait = createTrait(attr, "file-extensions");
-				StringTokenizer st = new StringTokenizer(suffixes, ";");
-				ListOfValues exts = TraitTypesFactory.eINSTANCE.createListOfValues();
-				while (st.hasMoreElements()){
-					String ext = st.nextToken();
-					exts.getEntries().add(createAndSetSimpleAnyTypeValue(ext));
-				}
-				trait.setValue(exts);
-				attr.getTraits().add(trait);
-			}
-			else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_DEFAULT) > -1){
-				int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_DEFAULT);
-				String defaultVal = typeParam.substring(i+IAttributeDescriptor.PARAMETER_DEFAULT.length()+1);
-				createTraitAndSimpleAnyTypeValue(attr, "default-value", defaultVal);
-			}
-			else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_SEPARATOR) > -1){
-				int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_SEPARATOR);
-				String sep = typeParam.substring(i+IAttributeDescriptor.PARAMETER_SEPARATOR.length()+1);
-				createTraitAndSimpleAnyTypeValue(attr, "multi-choice-seperator", sep);
-			}
-			else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_STYLE) > -1){
-				int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_STYLE);
-				String style = typeParam.substring(i+IAttributeDescriptor.PARAMETER_STYLE.length()+1);
-				createTraitAndSimpleAnyTypeValue(attr, "style", style);
-			}
-			else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_SUPER_TYPE) > -1){
-				//do nothing; handled by JavaClassType translation
-			}
-			else if (typeParam.length() > 0){
-				//what to do?  CSSClass seems to require 'empty' type param
-				System.out.println(typeParam);
-			}
-		}
-	}
-
-//	private void createWebPathValidExtensionsTrait(Entity attr, IAttributeDescriptor attrDesc) {
-//		List<String> exts = new ArrayList<String>();
-//		if (attrDesc.getTypeParameter().indexOf("=") > 0){
-//			String extS = attrDesc.getTypeParameter().substring(attrDesc.getTypeParameter().indexOf("=")+1);//remove "suffix="
-//			StringTokenizer st = new StringTokenizer(extS, ";");
-//			while (st.hasMoreElements()){
-//				exts.add((String)st.nextElement());
-//			}
-//			Trait trait = createTrait(attr, "file-extension-filters");
-//			ListOfValues list =  TraitTypesFactory.eINSTANCE.createListOfValues();
-//			for (String ext : exts){
-//				list.getEntries().add(createAndSetSimpleAnyTypeValue(ext));
-//			}
-//			trait.setValue(list);
-//			attr.getTraits().add(trait);
-//		}
-//	}
-
-	private void createValidatorParams(Entity attr) {
-		Trait t = createTrait(attr, "runtime-param-types");
-		ListOfValues list =  TraitTypesFactory.eINSTANCE.createListOfValues();
-		list.getEntries().add(createAndSetSimpleAnyTypeValue("javax.faces.context.FacesContext"));
-		list.getEntries().add(createAndSetSimpleAnyTypeValue("javax.faces.component.UIComponent"));
-		list.getEntries().add(createAndSetSimpleAnyTypeValue("java.lang.Object"));
-	
-		t.setValue(list);
-		attr.getTraits().add(t);
-	}
-	
-	private SimpleAnyType createAndSetSimpleAnyTypeValue(String rawVal){
-		SimpleAnyType item = XMLTypeFactory.eINSTANCE.createSimpleAnyType();
-		item.setRawValue(rawVal);
-		return item;
-	}
-
-	private void createPossibleValuesAndValidValueTraits(Entity attr,
-			IAttributeDescriptor attrDesc) {
-		if (attrDesc.getOptions() != null){
-			Trait validVals = MetadataFactory.eINSTANCE.createTrait();
-			validVals.setId("valid-values");
-			validVals.setSourceModelProvider(_assistant.getSourceModelProvider());
-			
-			Trait displayVals = MetadataFactory.eINSTANCE.createTrait();
-			displayVals.setId("displayed-values");
-			displayVals.setSourceModelProvider(_assistant.getSourceModelProvider());
-			
-			Map options = attrDesc.getOptions();
-			ListOfValues validVs = TraitTypesFactory.eINSTANCE.createListOfValues();
-			ListOfValues displayVs = TraitTypesFactory.eINSTANCE.createListOfValues();
-			for (Iterator it=options.entrySet().iterator();it.hasNext();){
-				Map.Entry entry = (Map.Entry)it.next();
-				validVs.getEntries().add(createAndSetSimpleAnyTypeValue((String)entry.getKey()));
-				displayVs.getEntries().add(createAndSetSimpleAnyTypeValue((String)entry.getValue()));
-			}
-			if (validVs.getEntries().size() > 0) {
-				validVals.setValue(validVs);
-				displayVals.setValue(displayVs);
-				attr.getTraits().add(validVals);
-				attr.getTraits().add(displayVals);
-			}
-		}		
-	}
-
-	private void setTraitValueUsingSimpleAnyType(Trait trait, String type) {
-		SimpleAnyType value = XMLTypeFactory.eINSTANCE.createSimpleAnyType();
-		value.setRawValue(type);
-		trait.setValue(value);
-	}
-	
-	private Trait createTrait(Entity entity, String id){
-		Trait trait = MetadataFactory.eINSTANCE.createTrait();
-		trait.setId(id);
-		trait.setSourceModelProvider(_assistant.getSourceModelProvider());
-		return trait;
-	}
-	
-	private boolean hasTrait(Entity attr, String traitKey) {
-		
-		return false;
-	}
-
-	private void createTagTraits(Entity tag, IElementDescriptor tagElem) {
-		if (tagElem.getHelpContextID() != null && !tagElem.getHelpContextID().equals("")){
-			//create help-topic-id trait...
-			//not bothering at the moment as we are not providing tooling at the moment
-		}
-	}
-
-	private Entity internalCreateTagEntity(IElementDescriptor tagElem) {
-		Entity tag = MetadataFactory.eINSTANCE.createEntity();
-		tag.setId(tagElem.getTagName());
-		return tag;
-	}
-	
-	private Entity internalCreateAttributeEntity(IAttributeDescriptor attrDesc) {
-		Entity attr = MetadataFactory.eINSTANCE.createEntity();
-		attr.setId(attrDesc.getAttributeName());
-		return attr;
-	}
-
-	private Model getMergedModel(){
-		if ((Model)_assistant.getMergedModel().getRoot() != null)
-			return (Model)_assistant.getMergedModel().getRoot();
-		
-		Model model = MetadataFactory.eINSTANCE.createModel();
-		model.setId(_assistant.getMergedModel().getModelKey().getUri());
-		model.setSourceModelProvider(_assistant.getSourceModelProvider());
-		_assistant.getMergedModel().setRoot(model);
-		return model;
-		
-	}
-}
