igors 02/02/27 05:25:36 Modified: java/src/org/apache/axis/wsdl/toJava Namespaces.java Log: Took care of namespaces like urn:mystd:api. That is ':' may also be used as a name part separator. WSDL2Java was choking on nsps like that. Such nsps are extensively used in some standards schemas. Revision Changes Path 1.2 +19 -6 xml-axis/java/src/org/apache/axis/wsdl/toJava/Namespaces.java Index: Namespaces.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Namespaces.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Namespaces.java 11 Dec 2001 15:08:47 -0000 1.1 +++ Namespaces.java 27 Feb 2002 13:25:36 -0000 1.2 @@ -71,6 +71,19 @@ private String defaultPackage = null; /** + * Toknens in a namespace that are treated as package name part separators. + */ + private static final char[] pkgSeparators = { '.', ':' }; + private static final char javaPkgSeparator = pkgSeparators[0]; + + private static String normalizePackageName(String pkg, char separator) + { + for(int i=0; i<pkgSeparators.length; i++) + pkg = pkg.replace(pkgSeparators[i], separator); + return pkg; + } + + /** * Instantiate a Namespaces object whose packages will all reside under root. */ public Namespaces(String root) { @@ -102,10 +115,10 @@ if (defaultPackage != null) { return defaultPackage; } - Object value = super.get(key); + String value = (String)super.get(key); if (value == null) { - value = Utils.makePackageName((String) key); - put(key, value); + value = (String)Utils.makePackageName(key); + put(key, normalizePackageName(value,javaPkgSeparator)); } return (String) value; } // getCreate @@ -129,7 +142,7 @@ public String toDir(String pkg) { String dir = null; if (pkg != null) { - pkg = pkg.replace('.', File.separatorChar); + pkg = normalizePackageName(pkg,File.separatorChar); } if (root == null) { dir = pkg; @@ -186,9 +199,9 @@ /** * Set a package name that overrides the namespace map - * + * * @param a java package name (e.g. com.foo) - */ + */ public void setDefaultPackage(String defaultPackage) { this.defaultPackage = defaultPackage; }