You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Dave Dunkin <Da...@Attachmate.com> on 2002/02/07 03:10:22 UTC
JavaUtils.xmlNameToJava and special characters
The xmlNameToJava function munges strings so that they only contain letters
and numbers. However, other characters (such as '$' and '_') are valid in
Java identifiers. Instead of using the Character.isLetter() and
Character.isLetterOrDigit(), why not use Character.isJavaIdentifierStart()
and Character.isJavaIdentifierPart()? Here's a diff:
*** JavaUtils.java 1 Feb 2002 04:38:18 -0000 1.24
--- JavaUtils.java 7 Feb 2002 01:28:24 -0000
***************
*** 315,325 ****
char[] nameArray = name.toCharArray();
int nameLen = name.length();
StringBuffer result = new StringBuffer(nameLen);
// First character, lower case
int i = 0;
while (i < nameLen
! && !Character.isLetter(nameArray[i])) {
i++;
}
if (i < nameLen) {
--- 315,325 ----
char[] nameArray = name.toCharArray();
int nameLen = name.length();
StringBuffer result = new StringBuffer(nameLen);
// First character, lower case
int i = 0;
while (i < nameLen
! && !Character.isJavaIdentifierStart(nameArray[i])) {
i++;
}
if (i < nameLen) {
***************
*** 336,342 ****
// if this is a bad char, skip it a remember to capitalize
next
// good character we encounter
! if( !Character.isLetterOrDigit(c)) {
wordStart = true;
continue;
}
--- 336,342 ----
// if this is a bad char, skip it a remember to capitalize
next
// good character we encounter
! if( !Character.isJavaIdentifierPart(c)) {
wordStart = true;
continue;
}
Dave Dunkin