[100152] JSP/HTML editor doesn't recognize lowercase tags in Turkish locale
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
index 21ce1b2..91f34f2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
@@ -14,16 +14,17 @@
 
 import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.Locale;
 
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 
 /**
- * An implementation of the CMNamedNodeMap interface.
- * This class is intented to be used as a container of attribute declarations.
- * If someone wants to use this class for other purpose, he must pay attention
- * to the fact that this class is tolerant of the key name case.  That is, this
- * class does not distinguish "name", "NAME", and "Name" as a key name.
+ * An implementation of the CMNamedNodeMap interface. This class is intented
+ * to be used as a container of attribute declarations. If someone wants to
+ * use this class for other purpose, he must pay attention to the fact that
+ * this class is tolerant of the key name case. That is, this class does not
+ * distinguish "name", "NAME", and "Name" as a key name.
  */
 class CMNamedNodeMapImpl implements CMNamedNodeMap {
 
@@ -38,6 +39,7 @@
 
 	/**
 	 * getLength method
+	 * 
 	 * @return int
 	 */
 	public int getLength() {
@@ -46,8 +48,10 @@
 
 	/**
 	 * getNamedItem method
+	 * 
 	 * @return CMNode <code>null</code> for unknown keys.
-	 * @param name java.lang.String
+	 * @param name
+	 *            java.lang.String
 	 */
 	public CMNode getNamedItem(String name) {
 		String cookedName = makeCanonicalForm(name);
@@ -58,8 +62,10 @@
 
 	/**
 	 * item method
+	 * 
 	 * @return CMNode
-	 * @param index int
+	 * @param index
+	 *            int
 	 */
 	public CMNode item(int index) {
 		Iterator iter = iterator();
@@ -80,15 +86,24 @@
 
 	/**
 	 * @return java.lang.String
-	 * @param rawForm java.lang.String
+	 * @param rawForm
+	 *            java.lang.String
 	 */
-	private String makeCanonicalForm(String rawForm) {
-		return rawForm.toUpperCase();
+	private String makeCanonicalForm(String raw) {
+		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152
+		// we are able to "cheat" here a little and use US Locale
+		// to get a good cononical form, since we are using this only
+		// for HTML and JSP standard tags.
+		// Long term, for similar needs with XML 1.1 (for example)
+		// we should use a class such as com.ibm.icu.text.Normalizer
+		return raw.toUpperCase(Locale.US);
 	}
 
 	/**
-	 * @param key java.lang.String
-	 * @param item java.lang.String
+	 * @param key
+	 *            java.lang.String
+	 * @param item
+	 *            java.lang.String
 	 */
 	void putNamedItem(String name, CMNode item) {
 		String cookedName = makeCanonicalForm(name);
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
index a32cdfd..098f91a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
@@ -13,15 +13,16 @@
 
 
 import java.util.Iterator;
+import java.util.Locale;
 
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 
 /**
- * An implementation of the CMNamedNodeMap interface.
- * This class is intented to be used as a container of attribute declarations.
- * If someone wants to use this class for other purpose, he must pay attention
- * to the fact that this class is tolerant of the key name case.  That is, this
- * class does not distinguish "name", "NAME", and "Name" as a key name.
+ * An implementation of the CMNamedNodeMap interface. This class is intented
+ * to be used as a container of attribute declarations. If someone wants to
+ * use this class for other purpose, he must pay attention to the fact that
+ * this class is tolerant of the key name case. That is, this class does not
+ * distinguish "name", "NAME", and "Name" as a key name.
  */
 class CMNamedNodeMapImpl implements org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap {
 
@@ -36,6 +37,7 @@
 
 	/**
 	 * getLength method
+	 * 
 	 * @return int
 	 */
 	public int getLength() {
@@ -44,8 +46,10 @@
 
 	/**
 	 * getNamedItem method
+	 * 
 	 * @return CMNode <code>null</code> for unknown keys.
-	 * @param name java.lang.String
+	 * @param name
+	 *            java.lang.String
 	 */
 	public CMNode getNamedItem(String name) {
 		String cookedName = makeCanonicalForm(name);
@@ -56,8 +60,10 @@
 
 	/**
 	 * item method
+	 * 
 	 * @return CMNode
-	 * @param index int
+	 * @param index
+	 *            int
 	 */
 	public CMNode item(int index) {
 		Iterator iter = iterator();
@@ -78,15 +84,24 @@
 
 	/**
 	 * @return java.lang.String
-	 * @param rawForm java.lang.String
+	 * @param rawForm
+	 *            java.lang.String
 	 */
-	private String makeCanonicalForm(String rawForm) {
-		return rawForm.toUpperCase();
+	private String makeCanonicalForm(String raw) {
+		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152
+		// we are able to "cheat" here a little and use US Locale
+		// to get a good cononical form, since we are using this only
+		// for HTML and JSP standard tags.
+		// Long term, for similar needs with XML 1.1 (for example)
+		// we should use a class such as com.ibm.icu.text.Normalizer
+		return raw.toUpperCase(Locale.US);
 	}
 
 	/**
-	 * @param key java.lang.String
-	 * @param item java.lang.String
+	 * @param key
+	 *            java.lang.String
+	 * @param item
+	 *            java.lang.String
 	 */
 	void putNamedItem(String name, CMNode item) {
 		String cookedName = makeCanonicalForm(name);
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
index 2b56527..22558cf 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
@@ -14,6 +14,7 @@
 
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Locale;
 
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
@@ -90,7 +91,13 @@
 		}
 
 		private String makeCanonicalForm(String raw) {
-			return raw.toUpperCase();
+			// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100152
+			// we are able to "cheat" here a little and use US Locale
+			// to get a good cononical form, since we are using this only
+			// for HTML and JSP standard tags.
+			// Long term, for similar needs with XML 1.1 (for example)
+			// we should use a class such as com.ibm.icu.text.Normalizer
+			return raw.toUpperCase(Locale.US);
 		}
 	}
 
@@ -137,7 +144,8 @@
 
 	/**
 	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
-	 * @param id int
+	 * @param id
+	 *            int
 	 */
 	protected abstract CMNode create(String name);
 
@@ -166,8 +174,10 @@
 
 	/**
 	 * Map name to id.
+	 * 
 	 * @return int
-	 * @param name java.lang.String
+	 * @param name
+	 *            java.lang.String
 	 */
 	protected int getID(String name) {
 		return fMap.getKey(name);
@@ -175,6 +185,7 @@
 
 	/**
 	 * getLength method
+	 * 
 	 * @return int
 	 */
 	public int getLength() {
@@ -183,7 +194,8 @@
 
 	/**
 	 * @return java.lang.String
-	 * @param id int
+	 * @param id
+	 *            int
 	 */
 	protected String getName(int id) {
 		return (String) fMap.getValue(id);
@@ -191,8 +203,10 @@
 
 	/**
 	 * getNamedItem method
+	 * 
 	 * @return CMNode
-	 * @param name java.lang.String
+	 * @param name
+	 *            java.lang.String
 	 */
 	public CMNode getNamedItem(String name) {
 		int id = getID(name);
@@ -203,7 +217,8 @@
 
 	/**
 	 * @return boolean
-	 * @param id int
+	 * @param id
+	 *            int
 	 */
 	private boolean isValidID(int id) {
 		return id >= 0 && id < fDecls.length;
@@ -211,8 +226,10 @@
 
 	/**
 	 * item method
+	 * 
 	 * @return CMNode
-	 * @param index int
+	 * @param index
+	 *            int
 	 */
 	public CMNode item(int index) {
 		if (!isValidID(index))