diff --git a/bundles/org.eclipse.jst.ws.jaxws.core/src/org/eclipse/jst/ws/internal/jaxws/core/annotations/validation/UniqueNamesRule.java b/bundles/org.eclipse.jst.ws.jaxws.core/src/org/eclipse/jst/ws/internal/jaxws/core/annotations/validation/UniqueNamesRule.java
index 25de988..d00a830 100644
--- a/bundles/org.eclipse.jst.ws.jaxws.core/src/org/eclipse/jst/ws/internal/jaxws/core/annotations/validation/UniqueNamesRule.java
+++ b/bundles/org.eclipse.jst.ws.jaxws.core/src/org/eclipse/jst/ws/internal/jaxws/core/annotations/validation/UniqueNamesRule.java
@@ -116,13 +116,17 @@
         if (annotationMirror != null) {
             AnnotationValue annotationValue = AnnotationUtils.getAnnotationValue(annotationMirror, attributeName);
             if (annotationValue != null) {
-                if (annotationValue.toString().trim().length() == 0) {
+            	String value = annotationValue.toString();
+            	if (value.startsWith("") && value.endsWith("")) {
+            		value = value.substring(1, value.length() -1);
+            	}
+            	if (value.trim().length() == 0) {
                     printError(annotationValue.getPosition(), JAXWSCoreMessages.bind(
                             JAXWSCoreMessages.EMPTY_ATTRIBUTE_VALUE, new Object[] { annotationName, attributeName }));
-                } else if (!XMLChar.isValidName(annotationValue.toString())) {
+                } else if (!XMLChar.isValidName(value)) {
                     printError(annotationValue.getPosition(), JAXWSCoreMessages.bind(
                             JAXWSCoreMessages.INVALID_NCNAME_ATTRIBUTE, new Object[] { annotationName,
-                                    attributeName,  annotationValue.toString() }));
+                                    attributeName,  value }));
                 }
             }
         }
