scheu 02/03/18 15:03:17 Modified: java/src/org/apache/axis/wsdl/toJava Tag: Beta1 JavaDeployWriter.java JavaStubWriter.java JavaWriterFactory.java SymbolTable.java Utils.java Log: Checking in the anon type fix for the beta release: 1) Changed separator from . to > 2) Fixed stub/deploy generator. Revision Changes Path No revision No revision 1.26.2.1 +12 -2 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java Index: JavaDeployWriter.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java,v retrieving revision 1.26 retrieving revision 1.26.2.1 diff -u -r1.26 -r1.26.2.1 --- JavaDeployWriter.java 13 Mar 2002 15:19:26 -0000 1.26 +++ JavaDeployWriter.java 18 Mar 2002 23:03:17 -0000 1.26.2.1 @@ -169,10 +169,20 @@ process = false; } + // If a root Element named Foo has an anon type, the + // anon type is named ">Foo". The following hack + // uses the name "Foo" so that the right qname gets + // registered. + String localPart = type.getQName().getLocalPart(); + if (localPart.startsWith(SymbolTable.ANON_TOKEN)) { + localPart = localPart.substring(1); + } + QName qName = new QName(type.getQName().getNamespaceURI(), localPart); + if (process) { pw.println(" <typeMapping"); - pw.println(" xmlns:ns=\"" + type.getQName().getNamespaceURI() + "\""); - pw.println(" qname=\"ns:" + type.getQName().getLocalPart() + '"'); + pw.println(" xmlns:ns=\"" + qName.getNamespaceURI() + "\""); + pw.println(" qname=\"ns:" + qName.getLocalPart() + '"'); pw.println(" type=\"java:" + type.getName() + '"'); if (type.getName().endsWith("[]")) { pw.println(" serializer=\"org.apache.axis.encoding.ser.ArraySerializerFactory\""); 1.45.2.1 +10 -1 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java Index: JavaStubWriter.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java,v retrieving revision 1.45 retrieving revision 1.45.2.1 diff -u -r1.45 -r1.45.2.1 --- JavaStubWriter.java 15 Mar 2002 15:35:07 -0000 1.45 +++ JavaStubWriter.java 18 Mar 2002 23:03:17 -0000 1.45.2.1 @@ -433,7 +433,16 @@ } firstSer = false ; - QName qname = type.getQName(); + // If a root Element named Foo has an anon type, the + // anon type is named ">Foo". The following hack + // uses the name "Foo" so that the right qname gets + // registered. + String localPart = type.getQName().getLocalPart(); + if (localPart.startsWith(SymbolTable.ANON_TOKEN)) { + localPart = localPart.substring(1); + } + QName qname = new QName(type.getQName().getNamespaceURI(), localPart); + pw.println(" qName = new javax.xml.rpc.namespace.QName(\"" + qname.getNamespaceURI() + "\", \"" + qname.getLocalPart() + "\");"); 1.18.2.1 +8 -5 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java Index: JavaWriterFactory.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java,v retrieving revision 1.18 retrieving revision 1.18.2.1 diff -u -r1.18 -r1.18.2.1 --- JavaWriterFactory.java 13 Mar 2002 15:43:34 -0000 1.18 +++ JavaWriterFactory.java 18 Mar 2002 23:03:17 -0000 1.18.2.1 @@ -182,14 +182,16 @@ } // Get the QName to javify QName typeQName = tEntry.getQName(); - if (typeQName.getLocalPart().lastIndexOf('.') >= 0) { + if (typeQName.getLocalPart().lastIndexOf(SymbolTable.ANON_TOKEN) >= 0) { // This is an anonymous type name. - // Axis uses '.' as a nesting token to generate + // Axis uses '>' as a nesting token to generate // unique qnames for anonymous types. - // Only consider the localName after the last '.' when + // Only consider the localName after the last '>' when // generating the java name String localName = typeQName.getLocalPart(); - localName = localName.substring(localName.lastIndexOf('.')+1); + localName = + localName.substring( + localName.lastIndexOf(SymbolTable.ANON_TOKEN)+1); typeQName = new QName(typeQName.getNamespaceURI(), localName); // If there is already an existing type, there will be a // collision. If there is an existing anon type, there will be a @@ -273,7 +275,8 @@ // an anonymous type, then need to change the // java name of the anonymous type to match. QName anonQName = new QName(entry.getQName().getNamespaceURI(), - "." + entry.getQName().getLocalPart()); + SymbolTable.ANON_TOKEN + + entry.getQName().getLocalPart()); TypeEntry anonType = symbolTable.getType(anonQName); if (anonType != null) { anonType.setName(entry.getName()); 1.44.2.1 +12 -6 xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java Index: SymbolTable.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java,v retrieving revision 1.44 retrieving revision 1.44.2.1 diff -u -r1.44 -r1.44.2.1 --- SymbolTable.java 13 Mar 2002 19:50:59 -0000 1.44 +++ SymbolTable.java 18 Mar 2002 23:03:17 -0000 1.44.2.1 @@ -142,6 +142,8 @@ // should we attempt to treat document/literal WSDL as "rpc-style" private boolean wrapped = false; + public static final String ANON_TOKEN = ">"; + /** * Construct a symbol table with the given Namespaces. */ @@ -1369,6 +1371,16 @@ setTypeReferences(referent, doc, literal); } } + // If the Defined Element has an anonymous type, + // process it with the current literal flag setting. + QName anonQName = SchemaUtils.getElementAnonQName(entry.getNode()); + if (anonQName != null) { + TypeEntry anonType = getType(anonQName); + if (anonType != null) { + setTypeReferences(anonType, doc, literal); + return; + } + } } } @@ -1579,12 +1591,6 @@ QName name = entry.getQName(); if (get(name, entry.getClass()) == null) { // An entry of the given qname of the given type doesn't exist yet. - - if (debug) { - System.out.println("Symbol Table add " + name + " as " + - entry.getClass().getName().substring( - entry.getClass().getName().lastIndexOf(".") + 1)); - } if (entry instanceof Type && get(name, UndefinedType.class) != null) { 1.19.2.1 +2 -1 xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java Index: Utils.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java,v retrieving revision 1.19 retrieving revision 1.19.2.1 diff -u -r1.19 -r1.19.2.1 --- Utils.java 13 Mar 2002 19:50:59 -0000 1.19 +++ Utils.java 18 Mar 2002 23:03:17 -0000 1.19.2.1 @@ -247,7 +247,8 @@ if (kind.getLocalPart().equals("schema")) { search = null; } else if (kind.getLocalPart().equals("element")) { - localName = "." + getNodeNameQName(search).getLocalPart(); + localName = SymbolTable.ANON_TOKEN + + getNodeNameQName(search).getLocalPart(); search = search.getParentNode(); } else if (kind.getLocalPart().equals("complexType") || kind.getLocalPart().equals("simpleType")) {