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 to...@apache.org on 2002/01/25 18:48:54 UTC

cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava SymbolTable.java

tomj        02/01/25 09:48:54

  Modified:    java/src/org/apache/axis/wsdl/toJava SymbolTable.java
  Log:
  Handle literal message elements of the form
   <element name="foo" type="foo_type"/>
  Insure the referenced types aren't emitted if not used.
  Pass literal flag to recursive calls to setTypeReferences()
  
  Revision  Changes    Path
  1.18      +14 -3     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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- SymbolTable.java	24 Jan 2002 23:13:00 -0000	1.17
  +++ SymbolTable.java	25 Jan 2002 17:48:54 -0000	1.18
  @@ -982,10 +982,17 @@
                       
                       // Get the Element
                       Element e = getElement((elementName));
  +                    Node node = getTypeEntry(elementName, true).getNode();
  +                    
  +                    // Check if this element is of the form:
  +                    //    <element name="foo" type="tns:foo_type"/> 
  +                    QName type = Utils.getNodeTypeRefQName(e.getNode(), "type");
  +                    if (type != null)
  +                        node = getTypeEntry(type, false).getNode();
                       
                       // Get the nested type entries.
                       Vector vTypes = SchemaUtils.getComplexElementTypesAndNames(
  -                            getTypeEntry(elementName, true).getNode(), 
  +                            node, 
                               this);
                       
                       if (vTypes != null) {
  @@ -1210,7 +1217,7 @@
                   if (referentName != null) {
                       TypeEntry referent = getTypeEntry(referentName, forElement.value);
                       if (referent != null) {
  -                        setTypeReferences(referent, doc, false);
  +                        setTypeReferences(referent, doc, literal);
                       }
                   }
               }
  @@ -1221,7 +1228,7 @@
           while (it.hasNext()) {
               TypeEntry nestedType = (TypeEntry) it.next();
               if (!nestedType.isReferenced()) {
  -                setTypeReferences(nestedType, doc, false);
  +                setTypeReferences(nestedType, doc, literal);
               }
           }
       } // setTypeReferences
  @@ -1258,6 +1265,10 @@
               type = getElement(part.getElementName());
               if (type != null) {
                   setTypeReferences(type, doc, literal);
  +                QName ref = Utils.getNodeTypeRefQName(type.getNode(), "type");
  +                if (ref != null) {
  +                    setTypeReferences(getTypeEntry(ref, false), doc, literal);
  +                }
               }
           }
       } // setMessageReference