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 Glen Daniels <gd...@macromedia.com> on 2002/11/25 21:05:55 UTC

RE: cvs commit: xml-axis/java/src/org/apache/axis/encoding Serial izationContextImpl.java

Dims, a few comments about this:

The dataset in the WSDL for your dataset test contains an <xsd:schema> followed by an <xsd:any>, so it looks to me like we're picking up on the any and therefore making a MessageElement[] in the generated types.  This "any" ends up picking up both the <xsd:schema> and the <diffgram> in the returned result.

In no case is an element with a *type* of "schema" ever going to happen, I think, because <schema> is an element declaration, not a type (the schema for schema defines the element with an anonymous complexType).

In other words, neither the thing I removed nor the type mapping you introduced seem like they actually did anything.  Does this analysis seem reasonable, or am I just suffering from a lack of coffee?

What I'd like to see (and I'm working on in my sandbox) is <xsd:schema> getting deserialized to an org.apache.axis.xsd.xml.schema.XmlSchema.  Except I'd much rather we called that "org.apache.axis.xsd.XmlSchema" or even "org.apache.axis.schema.XmlSchema"....  And regardless, this presumes that we integrate the schema contribution.

--Glen

> -----Original Message-----
> From: gdaniels@apache.org [mailto:gdaniels@apache.org]
> Sent: Monday, November 25, 2002 2:53 PM
> To: xml-axis-cvs@apache.org
> Subject: cvs commit: xml-axis/java/src/org/apache/axis/encoding
> SerializationContextImpl.java
> 
> 
> gdaniels    2002/11/25 11:53:08
> 
>   Modified:    java/src/org/apache/axis/wsdl/symbolTable 
> SymbolTable.java
>                         SchemaUtils.java
>                java/src/org/apache/axis/encoding
>                         SerializationContextImpl.java
>   Log:
>   A little cleanup, and remove Dims' "schema" entry in the 
> schema types
>   table, since it doesn't appear to be doing anything (?).
>   
>   Revision  Changes    Path
>   1.53      +3 -3      
> xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
>   
>   Index: SymbolTable.java
>   ===================================================================
>   RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/S
> ymbolTable.java,v
>   retrieving revision 1.52
>   retrieving revision 1.53
>   diff -u -r1.52 -r1.53
>   --- SymbolTable.java	22 Nov 2002 14:38:53 -0000	1.52
>   +++ SymbolTable.java	25 Nov 2002 19:53:08 -0000	1.53
>   @@ -766,7 +766,7 @@
>                    if (includeName != null) {
>                        URL url = getURL(context, includeName);
>                        Document includeDoc = 
> XMLUtils.newDocument(url.toString());
>   -                    populate(url, (Definition) null, 
> includeDoc, url.toString());
>   +                    populate(url, null, includeDoc, 
> url.toString());
>                    }
>                }
>            }
>   @@ -1152,7 +1152,7 @@
>                parameters.returnParam.setMode(Parameter.OUT);
>                if (parameters.returnParam.getType() 
> instanceof DefinedElement) {
>                    parameters.returnParam.setQName(
>   -                        
> ((DefinedElement)parameters.returnParam.getType())
>   +                        parameters.returnParam.getType()
>                            .getQName());
>                }
>                ++parameters.outputs;
>   @@ -2103,7 +2103,7 @@
>            Iterator ports = service.getPorts().values().iterator();
>            while (ports.hasNext()) {
>                Port port = (Port) ports.next();
>   -            Binding binding = (Binding) port.getBinding();
>   +            Binding binding = port.getBinding();
>                BindingEntry bEntry = 
> getBindingEntry(binding.getQName());
>                if (bEntry != null) {
>                    setBindingReferences(bEntry, def, doc);
>   
>   
>   
>   1.18      +4 -7      
> xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java
>   
>   Index: SchemaUtils.java
>   ===================================================================
>   RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/S
> chemaUtils.java,v
>   retrieving revision 1.17
>   retrieving revision 1.18
>   diff -u -r1.17 -r1.18
>   --- SchemaUtils.java	24 Nov 2002 14:43:59 -0000	1.17
>   +++ SchemaUtils.java	25 Nov 2002 19:53:08 -0000	1.18
>   @@ -343,8 +343,7 @@
>            // used to retrieve the proper java name of the type.
>            QName nodeType = Utils.getTypeQName(elementNode, 
> forElement, false);
>    
>   -        TypeEntry type = 
> (TypeEntry)symbolTable.getTypeEntry(nodeType, 
>   -                                                           
>   forElement.value);
>   +        TypeEntry type = 
> symbolTable.getTypeEntry(nodeType, forElement.value);
>    
>            // An element inside a complex type is either 
> qualified or unqualified.
>            // If the ref= attribute is used, the name of the 
> ref'd element is used
>   @@ -564,7 +563,7 @@
>                    return null; // No extension base
>                }
>                // Return associated Type
>   -            return (TypeEntry) symbolTable.getType(extendsType);
>   +            return symbolTable.getType(extendsType);
>            }
>            return null;
>        }
>   @@ -1094,9 +1093,8 @@
>                    }
>                    
>                    // Get the corresponding TypeEntry from 
> the symbol table
>   -                TypeEntry type = 
>   -                        
> (TypeEntry)symbolTable.getTypeEntry(attributeType, 
>   -                                                           
>  forElement.value);
>   +                TypeEntry type = 
> symbolTable.getTypeEntry(attributeType, 
>   +                                                          
> forElement.value);
>                    
>                    // add type and name to vector, skip it if 
> we couldn't parse it
>                    // XXX - this may need to be revisited.
>   @@ -1111,7 +1109,6 @@
>    
>        // list of all of the XSD types in Schema 2001
>        private static String schemaTypes[] = {
>   -        "schema",
>            "string",
>            "normalizedString",
>            "token",        
>   
>   
>   
>   1.80      +1 -2      
> xml-axis/java/src/org/apache/axis/encoding/SerializationContex
> tImpl.java
>   
>   Index: SerializationContextImpl.java
>   ===================================================================
>   RCS file: 
> /home/cvs/xml-axis/java/src/org/apache/axis/encoding/Serializa
> tionContextImpl.java,v
>   retrieving revision 1.79
>   retrieving revision 1.80
>   diff -u -r1.79 -r1.80
>   --- SerializationContextImpl.java	31 Oct 2002 23:40:46 
> -0000	1.79
>   +++ SerializationContextImpl.java	25 Nov 2002 19:53:08 
> -0000	1.80
>   @@ -66,7 +66,6 @@
>    import org.apache.axis.wsdl.symbolTable.SymbolTable;
>    import org.apache.axis.wsdl.symbolTable.SchemaUtils;
>    import org.apache.axis.encoding.ser.BaseSerializerFactory;
>   -import org.apache.axis.enum.Style;
>    import org.apache.axis.enum.Use;
>    import org.apache.axis.handlers.soap.SOAPService;
>    import org.apache.axis.attachments.Attachments;
>   @@ -354,7 +353,7 @@
>        public TypeMappingRegistry getTypeMappingRegistry() {
>            if (msgContext == null)
>                return null;
>   -        return (TypeMappingRegistry) 
> msgContext.getTypeMappingRegistry();
>   +        return msgContext.getTypeMappingRegistry();
>        }
>    
>        /**
>   
>   
>   
> 

RE: cvs commit: xml-axis/java/src/org/apache/axis/encoding Serial izationContextImpl.java

Posted by Davanum Srinivas <di...@yahoo.com>.
Glen,

The first step was to make sure that wsdl2java did not croak. Which was the oldest bug we had to
date (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8419). This was what i did...The check-in
and test case ensures that xsd:schema is handled both when wsdl2java is run as well as when we get
xsd:schema over the wire....Yes, the code checked in is not perfect. Needs to be cleaned up. I
mentioned that tweaking is needed in
(http://nagoya.apache.org/eyebrowse/ReadMsg?listName=axis-dev@xml.apache.org&msgNo=8110).

Please feel free to modify the code....

Thanks,
dims

--- Glen Daniels <gd...@macromedia.com> wrote:
> 
> Dims, a few comments about this:
> 
> The dataset in the WSDL for your dataset test contains an <xsd:schema> followed by an <xsd:any>,
> so it looks to me like we're picking up on the any and therefore making a MessageElement[] in
> the generated types.  This "any" ends up picking up both the <xsd:schema> and the <diffgram> in
> the returned result.
> 
> In no case is an element with a *type* of "schema" ever going to happen, I think, because
> <schema> is an element declaration, not a type (the schema for schema defines the element with
> an anonymous complexType).
> 
> In other words, neither the thing I removed nor the type mapping you introduced seem like they
> actually did anything.  Does this analysis seem reasonable, or am I just suffering from a lack
> of coffee?
> 
> What I'd like to see (and I'm working on in my sandbox) is <xsd:schema> getting deserialized to
> an org.apache.axis.xsd.xml.schema.XmlSchema.  Except I'd much rather we called that
> "org.apache.axis.xsd.XmlSchema" or even "org.apache.axis.schema.XmlSchema"....  And regardless,
> this presumes that we integrate the schema contribution.
> 
> --Glen
> 
> > -----Original Message-----
> > From: gdaniels@apache.org [mailto:gdaniels@apache.org]
> > Sent: Monday, November 25, 2002 2:53 PM
> > To: xml-axis-cvs@apache.org
> > Subject: cvs commit: xml-axis/java/src/org/apache/axis/encoding
> > SerializationContextImpl.java
> > 
> > 
> > gdaniels    2002/11/25 11:53:08
> > 
> >   Modified:    java/src/org/apache/axis/wsdl/symbolTable 
> > SymbolTable.java
> >                         SchemaUtils.java
> >                java/src/org/apache/axis/encoding
> >                         SerializationContextImpl.java
> >   Log:
> >   A little cleanup, and remove Dims' "schema" entry in the 
> > schema types
> >   table, since it doesn't appear to be doing anything (?).
> >   
> >   Revision  Changes    Path
> >   1.53      +3 -3      
> > xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
> >   
> >   Index: SymbolTable.java
> >   ===================================================================
> >   RCS file: 
> > /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/S
> > ymbolTable.java,v
> >   retrieving revision 1.52
> >   retrieving revision 1.53
> >   diff -u -r1.52 -r1.53
> >   --- SymbolTable.java	22 Nov 2002 14:38:53 -0000	1.52
> >   +++ SymbolTable.java	25 Nov 2002 19:53:08 -0000	1.53
> >   @@ -766,7 +766,7 @@
> >                    if (includeName != null) {
> >                        URL url = getURL(context, includeName);
> >                        Document includeDoc = 
> > XMLUtils.newDocument(url.toString());
> >   -                    populate(url, (Definition) null, 
> > includeDoc, url.toString());
> >   +                    populate(url, null, includeDoc, 
> > url.toString());
> >                    }
> >                }
> >            }
> >   @@ -1152,7 +1152,7 @@
> >                parameters.returnParam.setMode(Parameter.OUT);
> >                if (parameters.returnParam.getType() 
> > instanceof DefinedElement) {
> >                    parameters.returnParam.setQName(
> >   -                        
> > ((DefinedElement)parameters.returnParam.getType())
> >   +                        parameters.returnParam.getType()
> >                            .getQName());
> >                }
> >                ++parameters.outputs;
> >   @@ -2103,7 +2103,7 @@
> >            Iterator ports = service.getPorts().values().iterator();
> >            while (ports.hasNext()) {
> >                Port port = (Port) ports.next();
> >   -            Binding binding = (Binding) port.getBinding();
> >   +            Binding binding = port.getBinding();
> >                BindingEntry bEntry = 
> > getBindingEntry(binding.getQName());
> >                if (bEntry != null) {
> >                    setBindingReferences(bEntry, def, doc);
> >   
> >   
> >   
> >   1.18      +4 -7      
> > xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java
> >   
> >   Index: SchemaUtils.java
> >   ===================================================================
> >   RCS file: 
> > /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/S
> > chemaUtils.java,v
> >   retrieving revision 1.17
> >   retrieving revision 1.18
> >   diff -u -r1.17 -r1.18
> >   --- SchemaUtils.java	24 Nov 2002 14:43:59 -0000	1.17
> >   +++ SchemaUtils.java	25 Nov 2002 19:53:08 -0000	1.18
> >   @@ -343,8 +343,7 @@
> >            // used to retrieve the proper java name of the type.
> >            QName nodeType = Utils.getTypeQName(elementNode, 
> > forElement, false);
> >    
> >   -        TypeEntry type = 
> > (TypeEntry)symbolTable.getTypeEntry(nodeType, 
> >   -                                                           
> >   forElement.value);
> >   +        TypeEntry type = 
> > symbolTable.getTypeEntry(nodeType, forElement.value);
> >    
> >            // An element inside a complex type is either 
> > qualified or unqualified.
> >            // If the ref= attribute is used, the name of the 
> > ref'd element is used
> >   @@ -564,7 +563,7 @@
> >                    return null; // No extension base
> >                }
> >                // Return associated Type
> >   -            return (TypeEntry) symbolTable.getType(extendsType);
> >   +            return symbolTable.getType(extendsType);
> >            }
> >            return null;
> >        }
> >   @@ -1094,9 +1093,8 @@
> >                    }
> >                    
> >                    // Get the corresponding TypeEntry from 
> > the symbol table
> >   -                TypeEntry type = 
> >   -                        
> > (TypeEntry)symbolTable.getTypeEntry(attributeType, 
> >   -                                                           
> >  forElement.value);
> >   +                TypeEntry type = 
> > symbolTable.getTypeEntry(attributeType, 
> >   +                                                          
> > forElement.value);
> >                    
> >                    // add type and name to vector, skip it if 
> > we couldn't parse it
> >                    // XXX - this may need to be revisited.
> >   @@ -1111,7 +1109,6 @@
> >    
> >        // list of all of the XSD types in Schema 2001
> >        private static String schemaTypes[] = {
> >   -        "schema",
> >            "string",
> >            "normalizedString",
> >            "token",        
> >   
> >   
> >   
> >   1.80      +1 -2      
> > xml-axis/java/src/org/apache/axis/encoding/SerializationContex
> > tImpl.java
> >   
> >   Index: SerializationContextImpl.java
> >   ===================================================================
> >   RCS file: 
> > /home/cvs/xml-axis/java/src/org/apache/axis/encoding/Serializa
> > tionContextImpl.java,v
> >   retrieving revision 1.79
> >   retrieving revision 1.80
> >   diff -u -r1.79 -r1.80
> >   --- SerializationContextImpl.java	31 Oct 2002 23:40:46 
> > -0000	1.79
> >   +++ SerializationContextImpl.java	25 Nov 2002 19:53:08 
> > -0000	1.80
> >   @@ -66,7 +66,6 @@
> >    import org.apache.axis.wsdl.symbolTable.SymbolTable;
> >    import org.apache.axis.wsdl.symbolTable.SchemaUtils;
> >    import org.apache.axis.encoding.ser.BaseSerializerFactory;
> >   -import org.apache.axis.enum.Style;
> >    import org.apache.axis.enum.Use;
> >    import org.apache.axis.handlers.soap.SOAPService;
> >    import org.apache.axis.attachments.Attachments;
> >   @@ -354,7 +353,7 @@
> >        public TypeMappingRegistry getTypeMappingRegistry() {
> >            if (msgContext == null)
> >                return null;
> >   -        return (TypeMappingRegistry) 
> > msgContext.getTypeMappingRegistry();
> >   +        return msgContext.getTypeMappingRegistry();
> >        }
> >    
> >        /**
> >   
> >   
> >   
> > 


=====
Davanum Srinivas - http://xml.apache.org/~dims/

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus � Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com