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 gd...@apache.org on 2002/03/14 21:47:46 UTC

cvs commit: xml-axis/java/src/org/apache/axis/message MessageElement.java

gdaniels    02/03/14 12:47:46

  Modified:    java/src/org/apache/axis/message MessageElement.java
  Log:
  1) initialize typeQName from XML when constructing during deserialization
  
  2) getType() should just return whatever's set, since what was in there
     before was using prefixes whose mapping information wasn't available
     anymore
  
  3) use serialization context's serialize() method instead of using the
     serializer directly
  
  Revision  Changes    Path
  1.86      +10 -27    xml-axis/java/src/org/apache/axis/message/MessageElement.java
  
  Index: MessageElement.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageElement.java,v
  retrieving revision 1.85
  retrieving revision 1.86
  diff -u -r1.85 -r1.86
  --- MessageElement.java	14 Mar 2002 17:26:26 -0000	1.85
  +++ MessageElement.java	14 Mar 2002 20:47:46 -0000	1.86
  @@ -185,6 +185,11 @@
               this.attributes = new AttributesImpl();
           } else {
               this.attributes = new AttributesImpl(attributes);
  +            
  +            typeQName = context.getTypeFromAttributes(namespace,
  +                                                      localPart, 
  +                                                      attributes);
  +            
               String rootVal = attributes.getValue(Constants.URI_CURRENT_SOAP_ENC, Constants.ATTR_ROOT);
               if (rootVal != null)
                   _isRoot = rootVal.equals("1");
  @@ -249,23 +254,6 @@
       public void setNamespaceURI(String nsURI) { namespaceURI = nsURI; }
   
       public QName getType() {
  -        if (typeQName == null) {
  -            String typeStr = attributes.
  -                getValue(Constants.URI_CURRENT_SCHEMA_XSI,
  -                         Constants.ATTR_TYPE);
  -            if (typeStr != null) {
  -                int colPos = typeStr.indexOf(':');
  -                if (colPos != -1) {
  -                    typeQName = new QName(typeStr.substring(0, colPos),
  -                                          typeStr.substring(colPos + 1));
  -                } else {
  -                    typeQName = new QName("", typeStr);
  -                }
  -            } else {
  -                typeQName = new QName(getNamespaceURI(), getName());
  -            }
  -          }
  -
           return typeQName;
       }
       public void setType(QName qName) { typeQName = qName; }
  @@ -651,16 +639,11 @@
               context.registerPrefixForURI(prefix, namespaceURI);
   
           if (objectValue != null) {
  -            Serializer typeSerial = context.
  -                getSerializerForJavaType(objectValue.getClass());
  -
  -            if (typeSerial != null) {
  -                typeSerial.serialize(new QName(namespaceURI, name),
  -                                     attributes,
  -                                     objectValue,
  -                                     context);
  -                return;
  -            }
  +            context.serialize(new QName(namespaceURI, name),
  +                              attributes,
  +                              objectValue,
  +                              objectValue.getClass());
  +            return;
           }
   
           context.startElement(new QName(namespaceURI, name), attributes);