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/08/07 23:02:11 UTC

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

tomj        2002/08/07 14:02:11

  Modified:    java/src/org/apache/axis/utils axisNLS.properties
                        JavaUtils.java
               java/src/org/apache/axis Constants.java
               java/src/org/apache/axis/encoding
                        DefaultTypeMappingImpl.java
                        SerializationContextImpl.java
               java/src/org/apache/axis/encoding/ser HexDeserializer.java
                        HexSerializer.java
                        NormalizedStringDeserializer.java
                        NormalizedStringSerializer.java
                        TokenDeserializer.java TokenSerializer.java
               java/samples/echo InteropTest.wsdl
                        InteropTestSoapBindingImpl.java TestClient.java
               java/test/wsdl/interop3/groupE/client
                        InteropTestListServiceTestClient.java
               java/test/encoding PackageTests.java TestDeser2001.java
                        TestNormalizedString.java TestToken.java
               java/src/org/apache/axis/wsdl/toJava Utils.java
  Added:       java/src/org/apache/axis/holders HexBinaryHolder.java
                        NormalizedStringHolder.java TimeHolder.java
                        TokenHolder.java UnsignedByteHolder.java
                        UnsignedIntHolder.java UnsignedLongHolder.java
                        UnsignedShortHolder.java
               java/src/org/apache/axis/types HexBinary.java
                        NormalizedString.java Time.java Token.java
                        UnsignedByte.java UnsignedInt.java
                        UnsignedLong.java UnsignedShort.java
               java/src/org/apache/axis/encoding/ser TimeDeserializer.java
                        TimeDeserializerFactory.java TimeSerializer.java
                        TimeSerializerFactory.java
                        UnsignedByteDeserializer.java
                        UnsignedByteDeserializerFactory.java
                        UnsignedByteSerializer.java
                        UnsignedByteSerializerFactory.java
                        UnsignedIntDeserializer.java
                        UnsignedIntDeserializerFactory.java
                        UnsignedIntSerializer.java
                        UnsignedIntSerializerFactory.java
                        UnsignedLongDeserializer.java
                        UnsignedLongDeserializerFactory.java
                        UnsignedLongSerializer.java
                        UnsignedLongSerializerFactory.java
                        UnsignedShortDeserializer.java
                        UnsignedShortDeserializerFactory.java
                        UnsignedShortSerializer.java
                        UnsignedShortSerializerFactory.java
               java/test/encoding TestUnsignedByte.java
                        TestUnsignedInt.java TestUnsignedLong.java
                        TestUnsignedShort.java
  Removed:     java/src/org/apache/axis/encoding Hex.java
                        NormalizedString.java Token.java
  Log:
  Added support for new XML Schema types and matching Axis specific classes:
    time, unsignedLong, unsignedInt, unsignedShort, unsignedByte.
  
  Unsigned code and tests contributed by Chris Haddad (chris.haddad@cobia.net).
  
  Addresses bug 9966: no support for unsigned* Schema types
   http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9966
  
  Details:
  The classes Hex, Token, and NormalizedString moved from
  axis.encoding to axis.types.  Hex was renamed HexBinary
  to match the Schema type name.
  
  Add Holders for each of the new types, in addition to
  HexBinary, NormalizedString and Token
  
  Tests for deserialization of xsd:time were added to encoding.TestDeser2001.
  Tests for the unsigned types were added to the encoding unit tests.
  
  Comming later:
   - more testing of serialization and updating of the wsdl/types test.
   - additional types: gMonth and friends, anyURI, duration
   - Possibly support in JavaUtils.convert() for some (all?) of the
     axis specific time and number types.
  
  Revision  Changes    Path
  1.36      +5 -1      xml-axis/java/src/org/apache/axis/utils/axisNLS.properties
  
  Index: axisNLS.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/axisNLS.properties,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- axisNLS.properties	5 Aug 2002 05:15:31 -0000	1.35
  +++ axisNLS.properties	7 Aug 2002 21:02:08 -0000	1.36
  @@ -70,6 +70,10 @@
   badTime00=Invalid time
   badTimezone00=Invalid timezone
   badTypeNamespace00=Found languageSpecificType namespace ''{0}'', expected ''{1}''
  +badUnsignedByte00=Invalid unsigned byte
  +badUnsignedShort00=Invalid unsigned short
  +badUnsignedInt00=Invalid unsigned int
  +badUnsignedLong00=Invalid unsigned long
   badWSDDElem00=Invalid WSDD Element
   beanSerConfigFail00=Exception configuring bean serialization for {0}
   bodyElementParent=Warning: SOAPBodyElement.setParentElement should take a SOAPBody parameter instead of a SOAPEnvelope (but need not be called after SOAPBody.addBodyElement)
  @@ -478,7 +482,7 @@
   options00=Options:
   
   # NOTE:  in optionScope00, do not translate "Application", "Request", "Session"
  -optionScope00=add scope to deploy.xml: "Application", "Request", "Session"
  +optionScope00=add scope to deploy.wsdd: "Application", "Request", "Session"
   
   optionSkel00=emit server-side bindings for web service
   
  
  
  
  1.65      +8 -8      xml-axis/java/src/org/apache/axis/utils/JavaUtils.java
  
  Index: JavaUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/JavaUtils.java,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- JavaUtils.java	6 Aug 2002 14:47:12 -0000	1.64
  +++ JavaUtils.java	7 Aug 2002 21:02:08 -0000	1.65
  @@ -57,7 +57,7 @@
   
   import org.apache.axis.AxisProperties;
   import org.apache.axis.attachments.AttachmentPart;
  -import org.apache.axis.encoding.Hex;
  +import org.apache.axis.types.HexBinary;
   
   import org.apache.axis.components.logger.LogFactory;
   import org.apache.commons.logging.Log;
  @@ -220,13 +220,13 @@
               argHeldType = getHolderValueType(arg.getClass());
           }
   
  -        // Convert between Axis special purpose Hex and byte[]
  -        if (arg instanceof Hex &&
  +        // Convert between Axis special purpose HexBinary and byte[]
  +        if (arg instanceof HexBinary &&
               destClass == byte[].class) {
  -            return ((Hex) arg).getBytes();
  +            return ((HexBinary) arg).getBytes();
           } else if (arg instanceof byte[] &&
  -                   destClass == Hex.class) {
  -            return new Hex((byte[]) arg);
  +                   destClass == HexBinary.class) {
  +            return new HexBinary((byte[]) arg);
           }
   
           // Convert between Calendar and Date
  @@ -446,8 +446,8 @@
                   dest.getComponentType().isAssignableFrom(src)) 
                   return true;
   
  -            if ((src == Hex.class && dest == byte[].class) ||
  -                (src == byte[].class && dest == Hex.class))
  +            if ((src == HexBinary.class && dest == byte[].class) ||
  +                (src == byte[].class && dest == HexBinary.class))
                   return true;
               
               // Allow mapping of HashMaps to Hashtables
  
  
  
  1.76      +8 -2      xml-axis/java/src/org/apache/axis/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- Constants.java	6 Aug 2002 14:47:11 -0000	1.75
  +++ Constants.java	7 Aug 2002 21:02:08 -0000	1.76
  @@ -445,12 +445,18 @@
       public static final QName XSD_QNAME = new QName(URI_DEFAULT_SCHEMA_XSD, "QName");
       public static final QName XSD_DATETIME = new QName(URI_DEFAULT_SCHEMA_XSD, "dateTime");
       public static final QName XSD_DATE = new QName(URI_DEFAULT_SCHEMA_XSD, "date");
  +    public static final QName XSD_TIME = new QName(URI_DEFAULT_SCHEMA_XSD, "time");
       public static final QName XSD_TIMEINSTANT1999 = new QName(URI_1999_SCHEMA_XSD, "timeInstant");
       public static final QName XSD_TIMEINSTANT2000 = new QName(URI_2000_SCHEMA_XSD, "timeInstant");
   
       public static final QName XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, "normalizedString");
       public static final QName XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, "token");
   
  +    public static final QName XSD_UNSIGNEDLONG = new QName(URI_2001_SCHEMA_XSD, "unsignedLong");
  +    public static final QName XSD_UNSIGNEDINT = new QName(URI_2001_SCHEMA_XSD, "unsignedInt");
  +    public static final QName XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, "unsignedShort");
  +    public static final QName XSD_UNSIGNEDBYTE = new QName(URI_2001_SCHEMA_XSD, "unsignedByte");
  +
       public static final QName SOAP_BASE64 = new QName(URI_DEFAULT_SOAP_ENC, "base64");
       public static final QName SOAP_STRING = new QName(URI_DEFAULT_SOAP_ENC, "string");
       public static final QName SOAP_BOOLEAN = new QName(URI_DEFAULT_SOAP_ENC, "boolean");
  @@ -489,8 +495,8 @@
       public static final String MC_CONFIGPATH = "configPath";
       // MessageContext param for the IP of the calling client
       public static final String MC_REMOTE_ADDR = "remoteaddr";
  -    // When invoked from a servlet, per JAX-RPC, we need  a 
  +    // When invoked from a servlet, per JAX-RPC, we need  a
       // ServletEndpointContext object.  This is where it lives.
       public static final String MC_SERVLET_ENDPOINT_CONTEXT = "servletEndpointContext";
  -    
  +
   }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/HexBinaryHolder.java
  
  Index: HexBinaryHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.HexBinary;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class HexBinaryHolder
   *
   */
  public final class HexBinaryHolder implements Holder {
  
      /** Field _value */
      public HexBinary value;
  
      /**
       * Constructor HexBinaryHolder
       */
      public HexBinaryHolder() {
      }
  
      /**
       * Constructor HexBinaryHolder
       *
       * @param value
       */
      public HexBinaryHolder(HexBinary value) {
          this.value = value;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/NormalizedStringHolder.java
  
  Index: NormalizedStringHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.NormalizedString;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class NormalizedStringHolder
   *
   */
  public final class NormalizedStringHolder implements Holder {
  
      /** Field _value */
      public NormalizedString value;
  
      /**
       * Constructor NormalizedStringHolder
       */
      public NormalizedStringHolder() {
      }
  
      /**
       * Constructor NormalizedStringHolder
       *
       * @param value
       */
      public NormalizedStringHolder(NormalizedString value) {
          this.value = value;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/TimeHolder.java
  
  Index: TimeHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.Time;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class TimeHolder
   *
   */
  public final class TimeHolder implements Holder {
  
      /** Field _value */
      public Time value;
  
      /**
       * Constructor TimeHolder
       */
      public TimeHolder() {
      }
  
      /**
       * Constructor TimeHolder
       *
       * @param value
       */
      public TimeHolder(Time value) {
          this.value = value;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/TokenHolder.java
  
  Index: TokenHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.Token;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class TokenHolder
   *
   */
  public final class TokenHolder implements Holder {
  
      /** Field _value */
      public Token value;
  
      /**
       * Constructor TokenHolder
       */
      public TokenHolder() {
      }
  
      /**
       * Constructor NormalizedTokenHolderStringHolder
       *
       * @param value
       */
      public TokenHolder(Token value) {
          this.value = value;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/UnsignedByteHolder.java
  
  Index: UnsignedByteHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.UnsignedByte;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class UnsignedByteHolder
   *
   */
  public final class UnsignedByteHolder implements Holder {
  
      /** Field _value */
      public UnsignedByte value;
  
      /**
       * Constructor UnsignedByteHolder
       */
      public UnsignedByteHolder() {
      }
  
      /**
       * Constructor UnsignedByteHolder
       *
       * @param value
       */
      public UnsignedByteHolder(UnsignedByte value) {
          this.value = value;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/UnsignedIntHolder.java
  
  Index: UnsignedIntHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.UnsignedInt;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class UnsignedIntHolder
   *
   */
  public final class UnsignedIntHolder implements Holder {
  
      /** Field _value */
      public UnsignedInt value;
  
      /**
       * Constructor UnsignedIntHolder
       */
      public UnsignedIntHolder() {
      }
  
      /**
       * Constructor UnsignedIntHolder
       *
       * @param value
       */
      public UnsignedIntHolder(UnsignedInt value) {
          this.value = value;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/UnsignedLongHolder.java
  
  Index: UnsignedLongHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.UnsignedLong;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class UnsignedLongHolder
   *
   */
  public final class UnsignedLongHolder implements Holder {
  
      /** Field _value */
      public UnsignedLong value;
  
      /**
       * Constructor UnsignedLongHolder
       */
      public UnsignedLongHolder() {
      }
  
      /**
       * Constructor UnsignedLongHolder
       *
       * @param value
       */
      public UnsignedLongHolder(UnsignedLong value) {
          this.value = value;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/holders/UnsignedShortHolder.java
  
  Index: UnsignedShortHolder.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.holders;
  
  import org.apache.axis.types.UnsignedShort;
  
  import javax.xml.rpc.holders.Holder;
  
  /**
   * Class UnsignedShortHolder
   *
   */
  public final class UnsignedShortHolder implements Holder {
  
      /** Field _value */
      public UnsignedShort value;
  
      /**
       * Constructor UnsignedShortHolder
       */
      public UnsignedShortHolder() {
      }
  
      /**
       * Constructor UnsignedShortHolder
       *
       * @param value
       */
      public UnsignedShortHolder(UnsignedShort value) {
          this.value = value;
      }
  }
  
  
  
  
  1.40      +70 -18    xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java
  
  Index: DefaultTypeMappingImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- DefaultTypeMappingImpl.java	29 Jul 2002 21:30:01 -0000	1.39
  +++ DefaultTypeMappingImpl.java	7 Aug 2002 21:02:09 -0000	1.40
  @@ -56,6 +56,7 @@
   package org.apache.axis.encoding;
   
   import org.apache.axis.Constants;
  +import org.apache.axis.types.HexBinary;
   import org.apache.axis.schema.SchemaVersion;
   import org.apache.axis.encoding.ser.*;
   import org.apache.axis.utils.JavaUtils;
  @@ -143,12 +144,12 @@
           myRegister(Constants.SOAP_BYTE,       java.lang.Byte.class,
                      null, null, false);
   
  -        // Hex binary data needs to use the hex binary serializer/deserializer
  -        myRegister(Constants.XSD_HEXBIN,     Hex.class,
  +        // HexBinary binary data needs to use the hex binary serializer/deserializer
  +        myRegister(Constants.XSD_HEXBIN,     HexBinary.class,
                      new HexSerializerFactory(
  -                        Hex.class, Constants.XSD_HEXBIN),
  +                        HexBinary.class, Constants.XSD_HEXBIN),
                      new HexDeserializerFactory(
  -                        Hex.class, Constants.XSD_HEXBIN),true);
  +                        HexBinary.class, Constants.XSD_HEXBIN),true);
           myRegister(Constants.XSD_HEXBIN,     byte[].class,
                      new HexSerializerFactory(
                           byte[].class, Constants.XSD_HEXBIN),
  @@ -159,13 +160,13 @@
           // byte[] -ser-> XSD_BASE64
           // XSD_BASE64 -deser-> byte[]
           // SOAP_BASE64 -deser->byte[]
  -        // 
  +        //
           // Special case:
           // If serialization is requested for xsd:byte with byte[],
           // the array serializer is used.  If deserialization
           // is specifically requested for xsd:byte with byte[], the
  -        // simple deserializer is used.  This is necessary 
  -        // to support the serialization/deserialization 
  +        // simple deserializer is used.  This is necessary
  +        // to support the serialization/deserialization
           // of <element name="a" type="xsd:byte" maxOccurs="unbounded" />
           // as discrete bytes without interference with XSD_BASE64.
           myRegister(Constants.XSD_BYTE,       byte[].class,
  @@ -194,7 +195,7 @@
           // XSD_BASE64 -deser-> byte[]
           // SOAP_BASE64 -deser->byte[]
           //
  -        // NOTE: If the following code is enabled, the 
  +        // NOTE: If the following code is enabled, the
           // commented out code "//type == Byte[].class ||"
           // code in org.apache.axis.wsdl.fromJava.Types also needs to be enabled.
   
  @@ -267,7 +268,7 @@
           myRegister(Constants.XSD_ANYTYPE,    java.lang.Object.class,
                      null, null, false);
   
  -        // This is the special type for the xsd:any element used for 
  +        // This is the special type for the xsd:any element used for
           // extensibility.
           myRegister(Constants.XSD_ANY,    java.lang.Object.class,
                      new ElementSerializerFactory(),
  @@ -282,6 +283,13 @@
                                                  Constants.XSD_DATE),
                      true);
   
  +        // Mapping for xsd:time.  Map to Axis type Time
  +        myRegister(Constants.XSD_TIME,       org.apache.axis.types.Time.class,
  +                   new TimeSerializerFactory(org.apache.axis.types.Time.class,
  +                                             Constants.XSD_TIME),
  +                   new TimeDeserializerFactory(org.apache.axis.types.Time.class,
  +                                               Constants.XSD_TIME),
  +                   true);
           // Serialize all extensions of Map to SOAP_MAP
           // The SOAP_MAP will be deserialized into a HashMap by default.
           myRegister(Constants.SOAP_MAP,       java.util.HashMap.class,
  @@ -313,25 +321,69 @@
                      false);
   
           // xsd:token
  -        myRegister(Constants.XSD_TOKEN, org.apache.axis.encoding.Token.class,
  -                new TokenSerializerFactory(org.apache.axis.encoding.Token.class,
  +        myRegister(Constants.XSD_TOKEN, org.apache.axis.types.Token.class,
  +                new TokenSerializerFactory(org.apache.axis.types.Token.class,
                       Constants.XSD_TOKEN),
                   new TokenDeserializerFactory(
  -                    org.apache.axis.encoding.Token.class,
  +                    org.apache.axis.types.Token.class,
                       Constants.XSD_TOKEN),
                   false);
   
           // a xsd:normalizedString
           myRegister(Constants.XSD_NORMALIZEDSTRING,
  -                org.apache.axis.encoding.NormalizedString.class,
  +                org.apache.axis.types.NormalizedString.class,
                   new NormalizedStringSerializerFactory(
  -                    org.apache.axis.encoding.NormalizedString.class,
  +                    org.apache.axis.types.NormalizedString.class,
                       Constants.XSD_NORMALIZEDSTRING),
                   new NormalizedStringDeserializerFactory(
  -                    org.apache.axis.encoding.NormalizedString.class,
  +                    org.apache.axis.types.NormalizedString.class,
                       Constants.XSD_NORMALIZEDSTRING),
                   false);
   
  +        // a xsd:unsignedLong
  +        myRegister(Constants.XSD_UNSIGNEDLONG,
  +                org.apache.axis.types.UnsignedLong.class,
  +                new UnsignedLongSerializerFactory(
  +                    org.apache.axis.types.UnsignedLong.class,
  +                    Constants.XSD_UNSIGNEDLONG),
  +                new UnsignedLongDeserializerFactory(
  +                    org.apache.axis.types.UnsignedLong.class,
  +                    Constants.XSD_UNSIGNEDLONG),
  +                false);
  +
  +        // a xsd:unsignedInt
  +        myRegister(Constants.XSD_UNSIGNEDINT,
  +                org.apache.axis.types.UnsignedInt.class,
  +                new UnsignedIntSerializerFactory(
  +                    org.apache.axis.types.UnsignedInt.class,
  +                    Constants.XSD_UNSIGNEDINT),
  +                new UnsignedIntDeserializerFactory(
  +                    org.apache.axis.types.UnsignedInt.class,
  +                    Constants.XSD_UNSIGNEDINT),
  +                false);
  +
  +        // a xsd:unsignedShort
  +        myRegister(Constants.XSD_UNSIGNEDSHORT,
  +                org.apache.axis.types.UnsignedShort.class,
  +                new UnsignedShortSerializerFactory(
  +                    org.apache.axis.types.UnsignedShort.class,
  +                    Constants.XSD_UNSIGNEDSHORT),
  +                new UnsignedShortDeserializerFactory(
  +                    org.apache.axis.types.UnsignedShort.class,
  +                    Constants.XSD_UNSIGNEDSHORT),
  +                false);
  +
  +        // a xsd:unsignedByte
  +        myRegister(Constants.XSD_UNSIGNEDBYTE,
  +                org.apache.axis.types.UnsignedByte.class,
  +                new UnsignedByteSerializerFactory(
  +                    org.apache.axis.types.UnsignedByte.class,
  +                    Constants.XSD_UNSIGNEDBYTE),
  +                new UnsignedByteDeserializerFactory(
  +                    org.apache.axis.types.UnsignedByte.class,
  +                    Constants.XSD_UNSIGNEDBYTE),
  +                false);
  +
           // All array objects automatically get associated with the SOAP_ARRAY.
           // There is no way to do this with a hash table,
           // so it is done directly in getTypeQName.
  @@ -351,7 +403,7 @@
                      new ArraySerializerFactory(),
                      new ArrayDeserializerFactory(),
                      false);
  -        
  +
           //
           // Now register the schema specific types
           //
  @@ -367,7 +419,7 @@
        * in 99% of the cases.  The other cases that are Schema version specific
        * (i.e. timeInstant vs. dateTime) are handled by the SchemaVersion
        * Interface registerSchemaSpecificTypes().
  -     * 
  +     *
        * @param xmlType is the QName type
        * @param javaType is the java type
        * @param sf is the ser factory (if null, the simple factory is used)
  @@ -386,7 +438,7 @@
        * in 99% of the cases.  The other cases that are Schema version specific
        * (i.e. timeInstant vs. dateTime) are handled by the SchemaVersion
        * Interface registerSchemaSpecificTypes().
  -     * 
  +     *
        * @param xmlType is the QName type
        * @param javaType is the java type
        * @param sf is the ser factory (if null, the simple factory is used)
  
  
  
  1.51      +2 -1      xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java
  
  Index: SerializationContextImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- SerializationContextImpl.java	26 Jul 2002 20:30:36 -0000	1.50
  +++ SerializationContextImpl.java	7 Aug 2002 21:02:09 -0000	1.51
  @@ -60,6 +60,7 @@
   import org.apache.axis.Message;
   import org.apache.axis.MessageContext;
   import org.apache.axis.Handler;
  +import org.apache.axis.types.HexBinary;
   import org.apache.axis.schema.SchemaVersion;
   import org.apache.axis.soap.SOAPConstants;
   import org.apache.axis.wsdl.symbolTable.SymbolTable;
  @@ -520,7 +521,7 @@
           if (javaType == String.class) return true;
           if (Calendar.class.isAssignableFrom(javaType)) return true;
           if (Date.class.isAssignableFrom(javaType)) return true;
  -        if (Hex.class.isAssignableFrom(javaType)) return true;
  +        if (HexBinary.class.isAssignableFrom(javaType)) return true;
           if (Element.class.isAssignableFrom(javaType)) return true;
           if (javaType == byte[].class) return true;
   
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/HexBinary.java
  
  Index: HexBinary.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types ;
  
  import java.io.ByteArrayOutputStream;
  
  import org.apache.axis.utils.JavaUtils;
  
  /**
   * Custom class for supporting primitive XSD data type hexBinary.
   *
   * @author Davanum Srinivas <di...@yahoo.com>
   */
  public class HexBinary extends Object{
  
      byte[] m_value = null;
  
      public HexBinary() {
      }
  
      public HexBinary(String string){
          m_value = decode(string);
      }
  
      public HexBinary(byte[] bytes){
          m_value = bytes;
      }
  
      public byte[] getBytes(){
          return m_value;
      }
  
      public String toString(){
          return encode(m_value);
      }
  
      public int hashCode(){
          //TODO: How do we hash this?
          return super.hashCode();
      }
  
      public boolean equals(Object object){
          //TODO: Is this good enough?
          String s1 = object.toString();
          String s2 = this.toString();
          return s1.equals(s2);
      }
  
      public static final String ERROR_ODD_NUMBER_OF_DIGITS =
              JavaUtils.getMessage("oddDigits00");
      public static final String ERROR_BAD_CHARACTER_IN_HEX_STRING =
              JavaUtils.getMessage("badChars01");
  
      // Code from Ajp11, from Apache's JServ
  
      // Table for HEX to DEC byte translation
      public static final int[] DEC = {
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          00, 01, 02, 03, 04, 05, 06, 07,  8,  9, -1, -1, -1, -1, -1, -1,
          -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
          -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
      };
  
      /**
       * Convert a String of hexadecimal digits into the corresponding
       * byte array by encoding each two hexadecimal digits as a byte.
       *
       * @param digits Hexadecimal digits representation
       *
       * @exception IllegalArgumentException if an invalid hexadecimal digit
       *  is found, or the input string contains an odd number of hexadecimal
       *  digits
       */
      public static byte[] decode(String digits) {
  
          ByteArrayOutputStream baos = new ByteArrayOutputStream();
          for (int i = 0; i < digits.length(); i += 2) {
              char c1 = digits.charAt(i);
              if ((i+1) >= digits.length())
                  throw new IllegalArgumentException
                      (ERROR_ODD_NUMBER_OF_DIGITS);
              char c2 = digits.charAt(i + 1);
              byte b = 0;
              if ((c1 >= '0') && (c1 <= '9'))
                  b += ((c1 - '0') * 16);
              else if ((c1 >= 'a') && (c1 <= 'f'))
                  b += ((c1 - 'a' + 10) * 16);
              else if ((c1 >= 'A') && (c1 <= 'F'))
                  b += ((c1 - 'A' + 10) * 16);
              else
                  throw new IllegalArgumentException
                      (ERROR_BAD_CHARACTER_IN_HEX_STRING);
              if ((c2 >= '0') && (c2 <= '9'))
                  b += (c2 - '0');
              else if ((c2 >= 'a') && (c2 <= 'f'))
                  b += (c2 - 'a' + 10);
              else if ((c2 >= 'A') && (c2 <= 'F'))
                  b += (c2 - 'A' + 10);
              else
                  throw new IllegalArgumentException
                      (ERROR_BAD_CHARACTER_IN_HEX_STRING);
              baos.write(b);
          }
          return (baos.toByteArray());
  
      }
  
  
      /**
       * Convert a byte array into a printable format containing a
       * String of hexadecimal digit characters (two per byte).
       *
       * @param bytes Byte array representation
       */
      public static String encode(byte bytes[]) {
  
          StringBuffer sb = new StringBuffer(bytes.length * 2);
          for (int i = 0; i < bytes.length; i++) {
              sb.append(convertDigit((int) (bytes[i] >> 4)));
              sb.append(convertDigit((int) (bytes[i] & 0x0f)));
          }
          return (sb.toString());
  
      }
  
      /**
       * Convert 4 hex digits to an int, and return the number of converted
       * bytes.
       *
       * @param hex Byte array containing exactly four hexadecimal digits
       *
       * @exception IllegalArgumentException if an invalid hexadecimal digit
       *  is included
       */
      public static int convert2Int( byte[] hex ) {
          // Code from Ajp11, from Apache's JServ
  
          // assert b.length==4
          // assert valid data
          int len;
          if(hex.length < 4 ) return 0;
          if( DEC[hex[0]]<0 )
              throw new IllegalArgumentException(ERROR_BAD_CHARACTER_IN_HEX_STRING);
          len = DEC[hex[0]];
          len = len << 4;
          if( DEC[hex[1]]<0 )
              throw new IllegalArgumentException(ERROR_BAD_CHARACTER_IN_HEX_STRING);
          len += DEC[hex[1]];
          len = len << 4;
          if( DEC[hex[2]]<0 )
              throw new IllegalArgumentException(ERROR_BAD_CHARACTER_IN_HEX_STRING);
          len += DEC[hex[2]];
          len = len << 4;
          if( DEC[hex[3]]<0 )
              throw new IllegalArgumentException(ERROR_BAD_CHARACTER_IN_HEX_STRING);
          len += DEC[hex[3]];
          return len;
      }
  
      /**
       * [Private] Convert the specified value (0 .. 15) to the corresponding
       * hexadecimal digit.
       *
       * @param value Value to be converted
       */
      private static char convertDigit(int value) {
  
          value &= 0x0f;
          if (value >= 10)
              return ((char) (value - 10 + 'a'));
          else
              return ((char) (value + '0'));
  
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/NormalizedString.java
  
  Index: NormalizedString.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types;
  
  import org.apache.axis.utils.JavaUtils;
  
  /**
   * Custom class for supporting XSD data type NormalizedString.
   * normalizedString represents white space normalized strings.
   * The base type of normalizedString is string.
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#normalizedString">XML Schema Part 2: Datatypes 3.3.1</a>
   */
  public class NormalizedString extends Object {
  
      String m_value = null;   // JAX-RPC maps xsd:string to java.lang.String
  
      public NormalizedString() {
          super();
      }
  
      /**
       *
       * ctor for NormalizedString
       * NOTE: null will be returned if validation fails
       */
      public NormalizedString(String stValue) throws Exception {
          setValue(stValue);
      }
  
      /**
       *
       * validates the data and sets the value for the object.
       *
       * @param normalizedString value
       */
      public void setValue(String stValue) throws Exception {
          if (isValid(stValue) == false)
              throw new Exception(JavaUtils.getMessage("badNormalizedString00") +
                      " data=[" + stValue + "]");
          m_value = stValue;
      }
  
      public String toString(){
          return m_value;
      }
  
      public int hashCode(){
          //TODO: How do we hash this?
          return m_value.hashCode();
      }
  
      /**
       *
       * validate the value against the xsd definition for the object
       *
       * The value space of normalizedString is the set of strings that
       * do not contain the carriage return (#xD), line feed (#xA) nor
       * tab (#x9) characters. The lexical space of normalizedString is
       * the set of strings that do not contain the carriage return (#xD)
       * nor tab (#x9) characters.
       *
       * @param the String to test
       * @returns true if valid normalizedString
       */
      public boolean isValid(String stValue)  {
          int scan;
  
          for (scan = 0; scan < stValue.length(); scan++) {
              char cDigit = stValue.charAt(scan);
              switch (cDigit) {
                  case 0x09:
                  case 0x0A:
                  case 0x0D:
                      return false;
                  default:
                      break;
              }
          }
          return true;
      }
  
      public boolean equals(Object object)  {
          String s1 = object.toString();
          return s1.equals(m_value);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/Time.java
  
  Index: Time.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types;
  
  import org.apache.axis.utils.JavaUtils;
  
  import java.util.Date;
  import java.util.TimeZone;
  import java.util.Calendar;
  import java.util.GregorianCalendar;
  import java.text.SimpleDateFormat;
  
  /**
   * Class that represents the xsd:time XML Schema type
   */ 
  public class Time {
      private Calendar _value;
  
      
      private static SimpleDateFormat zulu =
         new SimpleDateFormat("HH:mm:ss.SSS'Z'");
  
      // We should always format dates in the GMT timezone
      static {
          zulu.setTimeZone(TimeZone.getTimeZone("GMT"));
      }
  
  
      /**
       * Initialize with a Calender, year month and date are ignored
       */ 
      public Time(Calendar value) {
          this._value = value;
          _value.set(0,0,0);      // ignore year, month, date
      }
      
      /**
       * Converts a string formatted as HH:mm:ss[.SSS][+/-offset]
       */ 
      public Time(String value) throws NumberFormatException {
          _value = makeValue(value);
      }
  
      public Calendar getAsCalendar() {
          return _value;
      }
  
      public void setTime(Calendar date) {
          this._value = date;
          _value.set(0,0,0);      // ignore year, month, date
      }
      
      public void setTime(Date date) {
          _value.setTime(date);
          _value.set(0,0,0);      // ignore year, month, date
      }
  
      /**
       * Utility function that parses xsd:time strings and returns a Date object
       */ 
      private Calendar makeValue(String source) throws NumberFormatException {
          Calendar calendar = Calendar.getInstance();
          Date date;
  
          // validate fixed portion of format
          if ( source != null ) {
              if (source.charAt(2) != ':' || source.charAt(5) != ':')
                  throw new NumberFormatException(
                          JavaUtils.getMessage("badTime00"));
              if (source.length() < 8) {
                  throw new NumberFormatException(
                          JavaUtils.getMessage("badTime00"));
              }
          }
  
          // convert what we have validated so far
          try {
              synchronized (zulu) {
                  date = zulu.parse(source == null ? null :
                                      (source.substring(0,8)+".000Z") );
              }
          } catch (Exception e) {
              throw new NumberFormatException(e.toString());
          }
  
          int pos = 8;    // The "." in hh:mm:ss.sss
  
          // parse optional milliseconds
          if ( source != null ) {
              if (pos < source.length() && source.charAt(pos)=='.') {
                  int milliseconds = 0;
                  int start = ++pos;
                  while (pos<source.length() &&
                         Character.isDigit(source.charAt(pos)))
                      pos++;
  
                  String decimal=source.substring(start,pos);
                  if (decimal.length()==3) {
                      milliseconds=Integer.parseInt(decimal);
                  } else if (decimal.length() < 3) {
                      milliseconds=Integer.parseInt((decimal+"000")
                                                    .substring(0,3));
                  } else {
                      milliseconds=Integer.parseInt(decimal.substring(0,3));
                      if (decimal.charAt(3)>='5') ++milliseconds;
                  }
  
                  // add milliseconds to the current date
                  date.setTime(date.getTime()+milliseconds);
              }
  
              // parse optional timezone
              if (pos+5 < source.length() &&
                  (source.charAt(pos)=='+' || (source.charAt(pos)=='-'))) {
                      if (!Character.isDigit(source.charAt(pos+1)) ||
                          !Character.isDigit(source.charAt(pos+2)) ||
                          source.charAt(pos+3) != ':'              ||
                          !Character.isDigit(source.charAt(pos+4)) ||
                          !Character.isDigit(source.charAt(pos+5)))
                          throw new NumberFormatException(
                                  JavaUtils.getMessage("badTimezone00"));
  
                      int hours = (source.charAt(pos+1)-'0')*10
                          +source.charAt(pos+2)-'0';
                      int mins  = (source.charAt(pos+4)-'0')*10
                          +source.charAt(pos+5)-'0';
                      int milliseconds = (hours*60+mins)*60*1000;
  
                      // subtract milliseconds from current date to obtain GMT
                      if (source.charAt(pos)=='+') milliseconds=-milliseconds;
                      date.setTime(date.getTime()+milliseconds);
                      pos+=6;
              }
  
              if (pos < source.length() && source.charAt(pos)=='Z') {
                  pos++;
                  calendar.setTimeZone(TimeZone.getTimeZone("GMT"));
              }
  
              if (pos < source.length())
                  throw new NumberFormatException(
                          JavaUtils.getMessage("badChars00"));
          }
  
          calendar.setTime(date);
          calendar.set(0,0,0);    // ignore year, month, date
          
          return calendar;
      }
  
      public String toString() {
          synchronized (zulu) {
              return zulu.format(_value.getTime());
          }
          
      }
  
      public boolean equals(Object obj) {
          if (!(obj instanceof Time)) return false;
          Time other = (Time) obj;
          if (obj == null) return false;
          if (this == obj) return true;
  
          boolean _equals;
          _equals = true &&
              ((_value ==null && other._value ==null) ||
               (_value !=null &&
                _value.equals(other._value)));
  
          return _equals;
          
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/Token.java
  
  Index: Token.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types;
  
  import java.util.ArrayList;
  
  import org.apache.axis.utils.JavaUtils;
  
  /**
   * Custom class for supporting primitive XSD data type Token.
   * token represents tokenized strings.
   * The base type of token is normalizedString.
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#token">XML Schema 3.3.2</a>
   */
  public class Token extends NormalizedString {
  
      public Token() {
          super();
      }
  
      /**
       * ctor for Token
       * @exception Exception will be thrown if validation fails
       */
      public Token(String stValue) throws Exception {
          try {
              setValue(stValue);
          }
          catch (Exception e) {
              // recast normalizedString exception as token exception
              throw new Exception(JavaUtils.getMessage("badToken00") + "data=[" +
                      stValue + "]");
          }
      }
  
      /**
       *
       * validate the value against the xsd definition
       *
       * The value space of token is the set of strings that do not
       * contain the line feed (#xA) nor tab (#x9) characters, that
       * have no leading or trailing spaces (#x20) and that have no
       * internal sequences of two or more spaces. The lexical space
       * of token is the set of strings that do not contain the line
       * feed (#xA) nor tab (#x9) characters, that have no leading or
       * trailing spaces (#x20) and that have no internal sequences of two
       * or more spaces.
       */
      public boolean isValid(String stValue) {
          int scan;
  
          // no leading space
          if (stValue.charAt(0) == 0x20)
              return false;
  
          // no trail space
          if (stValue.charAt(stValue.length() - 1) == 0x20)
              return false;
  
          for (scan=0; scan < stValue.length(); scan++) {
              char cDigit = stValue.charAt(scan);
              switch (cDigit) {
                  case 0x09:
                  case 0x0A:
                      return false;
                  case 0x20:
                     // no doublspace
                      if (scan+1 < stValue.length())
                          if (stValue.charAt(scan + 1) == 0x20) {
                              return false;
                          }
                  default:
                      break;
              }
          }
          return true;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/UnsignedByte.java
  
  Index: UnsignedByte.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types;
  
  import java.lang.Number;
  
  import org.apache.axis.utils.JavaUtils;
  
  /**
   * Custom class for supporting primitive XSD data type UnsignedByte
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedByte">XML Schema 3.3.24</a>
   */
  public class UnsignedByte extends UnsignedShort {
  
  
      public UnsignedByte() {
  
      }
  
      /**
       * ctor for UnsignedByte
       * @exception Exception will be thrown if validation fails
       */
      public UnsignedByte(long sValue) throws Exception {
              setValue(sValue);
      }
  
      /**
       *
       * validates the data and sets the value for the object.
       *
       * @param sValue the number to set
       */
      public void setValue(long sValue) throws Exception {
          if (isValid(sValue) == false)
              throw new Exception(JavaUtils.getMessage("badUnsignedByte00") +
                      String.valueOf(sValue) + "]");
          lValue = new Long(sValue);
      }
  
      /**
       *
       * validate the value against the xsd value space definition
       * @param sValue number to check against range
       */
      public boolean isValid(long sValue) {
        if ( (sValue < 0L ) ||  (sValue > 255L) )
          return false;
        else
          return true;
      }
  
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/UnsignedInt.java
  
  Index: UnsignedInt.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types;
  
  import java.lang.Comparable;
  import java.lang.Number;
  
  
  import org.apache.axis.utils.JavaUtils;
  
  /**
   * Custom class for supporting primitive XSD data type UnsignedInt
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedInt">XML Schema 3.3.22</a>
   */
  public class UnsignedInt extends java.lang.Number implements java.lang.Comparable {
  
      protected Long lValue;
  
      public UnsignedInt() {
      }
  
      /**
       * ctor for UnsignedInt
       * @exception Exception will be thrown if validation fails
       */
      public UnsignedInt(long iValue) throws Exception {
              setValue(iValue);
      }
  
      public UnsignedInt(String stValue) throws Exception {
              setValue(Long.parseLong(stValue));
      }
  
  
      /**
       *
       * validates the data and sets the value for the object.
       *
       * @param int value
       */
      public void setValue(long iValue) throws Exception {
        if (isValid(iValue) == false)
              throw new Exception(JavaUtils.getMessage("badUnsignedInt00") +
                      String.valueOf(iValue) + "]");
        lValue = new Long(iValue);
      }
  
      public String toString(){
        if (lValue != null)
          return lValue.toString();
        else
          return null;
      }
  
      public int hashCode(){
        if (lValue != null)
          return lValue.hashCode();
        else
          return 0;
      }
  
      /**
       *
       * validate the value against the xsd definition
       *
       */
      public boolean isValid(long iValue) {
        if ( (iValue < 0L)  || (iValue > 4294967295L))
          return false;
        else
          return true;
      }
  
      private Object __equalsCalc = null;
      public synchronized boolean equals(Object obj) {
          if (!(obj instanceof UnsignedInt)) return false;
          UnsignedInt other = (UnsignedInt) obj;
          if (obj == null) return false;
          if (this == obj) return true;
          if (__equalsCalc != null) {
              return (__equalsCalc == obj);
          }
          __equalsCalc = obj;
          boolean _equals;
          _equals = true &&
              ((lValue ==null && other.lValue ==null) ||
               (lValue !=null &&
                lValue.equals(other.lValue)));
          __equalsCalc = null;
          return _equals;
      }
  
      // implement java.lang.comparable interface
      public int compareTo(Object obj) {
        if (lValue != null)
          return lValue.compareTo(obj);
        else
          if (equals(obj) == true)
              return 0;  // null == null
          else
              return 1;  // object is greater
      }
  
      // Implement java.lang.Number interface
      public byte byteValue() { return lValue.byteValue(); }
      public short shortValue() { return lValue.shortValue(); }
      public int intValue() { return lValue.intValue(); }
      public long longValue() { return lValue.longValue(); }
      public double doubleValue() { return lValue.doubleValue(); }
      public float floatValue() { return lValue.floatValue(); }
  
  
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/UnsignedLong.java
  
  Index: UnsignedLong.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types;
  
  import java.util.ArrayList;
  
  import org.apache.axis.utils.JavaUtils;
  
  /**
   * Custom class for supporting primitive XSD data type UnsignedLong
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedLong">XML Schema 3.3.21</a>
   */
  public class UnsignedLong extends java.lang.Number implements java.lang.Comparable {
  
      Double lValue;
  
      public UnsignedLong() {
  
      }
  
      /**
       * ctor for UnsignedLong
       * @exception Exception will be thrown if validation fails
       */
      public UnsignedLong(double lValue) throws Exception {
              setValue(lValue);
      }
  
      /**
       *
       * validates the data and sets the value for the object.
       *
       * @param long value
       */
      public void setValue(double lValue) throws Exception {
          if (isValid(lValue) == false)
              throw new Exception(JavaUtils.getMessage("badUnsignedLong00") +
                      String.valueOf(lValue) + "]");
          this.lValue = new Double(lValue);
      }
  
      /**
      * strip the decimal part of the double value. toString tacks on .0
      */
      private String stripDecimal(String stValue) {
          return stValue.substring(0,stValue.lastIndexOf('.'));
      }
  
      private String convertDoubleToUnsignedLong(Double lValue) {
        if (lValue != null) {
          String stRetval = lValue.toString(); // convert to string
                // strip trailing .0
          return stripDecimal(stRetval);
        }
        return null;
      }
  
      public String toString(){
          return convertDoubleToUnsignedLong(lValue);
      }
  
      public int hashCode(){
        if (lValue != null)
          return lValue.hashCode();
        else
          return 0;
      }
  
      /**
       *
       * validate the value against the xsd definition
       *
       */
      public boolean isValid(double lValue) {
        if ( (lValue < 0L)  || (lValue > 18446744073709551615D) )
          return false;
        else
          return true;
      }
  
      private Object __equalsCalc = null;
      public synchronized boolean equals(Object obj) {
          if (!(obj instanceof UnsignedLong)) return false;
          UnsignedLong other = (UnsignedLong) obj;
          if (obj == null) return false;
          if (this == obj) return true;
          if (__equalsCalc != null) {
              return (__equalsCalc == obj);
          }
          __equalsCalc = obj;
          boolean _equals;
          _equals = true &&
              ((lValue ==null && other.lValue ==null) ||
               (lValue !=null &&
                lValue.equals(other.lValue)));
          __equalsCalc = null;
          return _equals;
      }
  
      // implement java.lang.comparable interface
      public int compareTo(Object obj) {
        if (lValue != null)
          return lValue.compareTo(obj);
        else
          if (equals(obj) == true)
              return 0;  // null == null
          else
              return 1;  // object is greater
      }
  
      // Implement java.lang.Number interface
      public byte byteValue() { return lValue.byteValue(); }
      public short shortValue() { return lValue.shortValue(); }
      public int intValue() { return lValue.intValue(); }
      public long longValue() { return lValue.longValue(); }
      public double doubleValue() { return lValue.doubleValue(); }
      public float floatValue() { return lValue.floatValue(); }
  
  
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/types/UnsignedShort.java
  
  Index: UnsignedShort.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.types;
  
  import java.util.ArrayList;
  
  import org.apache.axis.utils.JavaUtils;
  
  /**
   * Custom class for supporting primitive XSD data type UnsignedShort
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedShort">XML Schema 3.3.23</a>
   */
  public class UnsignedShort extends UnsignedInt {
  
      public UnsignedShort() {
  
      }
  
      /**
       * ctor for UnsignedShort
       * @exception Exception will be thrown if validation fails
       */
      public UnsignedShort(long sValue) throws Exception {
              setValue(sValue);
      }
  
      /**
       *
       * validates the data and sets the value for the object.
       *
       * @param short value
       */
      public void setValue(long sValue) throws Exception {
          if (isValid(sValue) == false)
              throw new Exception(JavaUtils.getMessage("badUnsignedShort00") +
                      String.valueOf(sValue) + "]");
          lValue = new Long(sValue);
      }
  
      /**
       *
       * validate the value against the xsd definition
       *
       */
      public boolean isValid(long sValue) {
        if ( (sValue < 0L  ) || (sValue > 65535L) )
          return false;
        else
          return true;
      }
  
  }
  
  
  
  1.6       +4 -4      xml-axis/java/src/org/apache/axis/encoding/ser/HexDeserializer.java
  
  Index: HexDeserializer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/HexDeserializer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- HexDeserializer.java	11 Jun 2002 14:53:56 -0000	1.5
  +++ HexDeserializer.java	7 Aug 2002 21:02:09 -0000	1.6
  @@ -56,7 +56,7 @@
   package org.apache.axis.encoding.ser;
   
   import org.apache.axis.encoding.DeserializationContext;
  -import org.apache.axis.encoding.Hex;
  +import org.apache.axis.types.HexBinary;
   import org.apache.axis.encoding.DeserializerImpl;
   import org.xml.sax.SAXException;
   
  @@ -103,12 +103,12 @@
       {
           if (buf != null) {
               if (javaType == byte[].class) {
  -                value = Hex.decode(buf.toString());
  +                value = HexBinary.decode(buf.toString());
               } else {
  -                value = new Hex(buf.toString());
  +                value = new HexBinary(buf.toString());
               }
           }
           super.onEndElement(namespace,localName, context);
  -        if (value == null) value = new Hex("");
  +        if (value == null) value = new HexBinary("");
       }
   }
  
  
  
  1.7       +5 -5      xml-axis/java/src/org/apache/axis/encoding/ser/HexSerializer.java
  
  Index: HexSerializer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/HexSerializer.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- HexSerializer.java	11 Jun 2002 14:53:56 -0000	1.6
  +++ HexSerializer.java	7 Aug 2002 21:02:09 -0000	1.7
  @@ -71,7 +71,7 @@
   import org.apache.axis.encoding.DeserializerFactory;
   import org.apache.axis.encoding.DeserializationContext;
   import org.apache.axis.encoding.Deserializer;
  -import org.apache.axis.encoding.Hex;
  +import org.apache.axis.types.HexBinary;
   import org.w3c.dom.Element;
   import org.w3c.dom.Document;
   import org.apache.axis.encoding.Base64;
  @@ -93,7 +93,7 @@
       }
   
       /**
  -     * Serialize a Hex quantity.
  +     * Serialize a HexBinary quantity.
        */
       public void serialize(QName name, Attributes attributes,
                             Object value, SerializationContext context)
  @@ -102,10 +102,10 @@
           context.startElement(name, attributes);
           
           value = JavaUtils.convert(value, javaType);
  -        if (javaType == Hex.class) {
  -            context.writeString(((Hex) value).toString());
  +        if (javaType == HexBinary.class) {
  +            context.writeString(((HexBinary) value).toString());
           } else {
  -            context.writeString(Hex.encode((byte[]) value));
  +            context.writeString(HexBinary.encode((byte[]) value));
           }
   
           context.endElement();
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/encoding/ser/NormalizedStringDeserializer.java
  
  Index: NormalizedStringDeserializer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/NormalizedStringDeserializer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NormalizedStringDeserializer.java	9 Jul 2002 15:17:31 -0000	1.1
  +++ NormalizedStringDeserializer.java	7 Aug 2002 21:02:09 -0000	1.2
  @@ -55,7 +55,7 @@
   
   package org.apache.axis.encoding.ser;
   
  -import org.apache.axis.encoding.NormalizedString;
  +import org.apache.axis.types.NormalizedString;
   import org.apache.axis.encoding.ser.SimpleDeserializer;
   
   import javax.xml.namespace.QName;
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/encoding/ser/NormalizedStringSerializer.java
  
  Index: NormalizedStringSerializer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/NormalizedStringSerializer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NormalizedStringSerializer.java	9 Jul 2002 15:17:31 -0000	1.1
  +++ NormalizedStringSerializer.java	7 Aug 2002 21:02:09 -0000	1.2
  @@ -67,7 +67,7 @@
   import org.apache.axis.encoding.Serializer;
   import org.apache.axis.encoding.SerializerFactory;
   import org.apache.axis.encoding.SerializationContext;
  -import org.apache.axis.encoding.NormalizedString;
  +import org.apache.axis.types.NormalizedString;
   import org.apache.axis.utils.JavaUtils;
   /**
    * Serializer for xsd:normalizedString
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/encoding/ser/TokenDeserializer.java
  
  Index: TokenDeserializer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/TokenDeserializer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TokenDeserializer.java	9 Jul 2002 15:17:31 -0000	1.1
  +++ TokenDeserializer.java	7 Aug 2002 21:02:09 -0000	1.2
  @@ -55,7 +55,7 @@
   
   package org.apache.axis.encoding.ser;
   
  -import org.apache.axis.encoding.Token;
  +import org.apache.axis.types.Token;
   import org.apache.axis.encoding.ser.SimpleDeserializer;
   import javax.xml.namespace.QName;
   
  
  
  
  1.2       +1 -1      xml-axis/java/src/org/apache/axis/encoding/ser/TokenSerializer.java
  
  Index: TokenSerializer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/TokenSerializer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TokenSerializer.java	9 Jul 2002 15:17:31 -0000	1.1
  +++ TokenSerializer.java	7 Aug 2002 21:02:09 -0000	1.2
  @@ -60,7 +60,7 @@
   import org.apache.axis.encoding.Serializer;
   import org.apache.axis.encoding.SerializerFactory;
   import org.apache.axis.encoding.SerializationContext;
  -import org.apache.axis.encoding.Token;
  +import org.apache.axis.types.Token;
   import org.apache.axis.utils.JavaUtils;
   import org.xml.sax.Attributes;
   
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/TimeDeserializer.java
  
  Index: TimeDeserializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.utils.JavaUtils;
  import org.apache.axis.types.Time;
  
  import javax.xml.namespace.QName;
  
  import java.text.SimpleDateFormat;
  import java.util.Calendar;
  import java.util.Date;
  import java.util.GregorianCalendar;
  import java.util.TimeZone;
  /**
   * Deserializer for the xsd:time XML schema type
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#time">XML Schema 3.2.8</a>
   *
   * @author Tom Jordahl (tomj@macromedia.com)
   */
  public class TimeDeserializer extends SimpleDeserializer {
  
      /**
       * The Deserializer is constructed with the xmlType and 
       * javaType
       */
      public TimeDeserializer(Class javaType, QName xmlType) {
          super(javaType, xmlType);
      }
  
      /**
       * The simple deserializer provides most of the stuff.
       * We just need to override makeValue().
       */
      public Object makeValue(String source) {
          // The Time object knows how to parse itself.   
          return new Time(source);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/TimeDeserializerFactory.java
  
  Index: TimeDeserializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import javax.xml.namespace.QName;
  
  /**
   * A TimeDeserializer Factory
   *
   *  @author Tom Jordahl (tomj@macromedia.com)
   */
  public class TimeDeserializerFactory extends BaseDeserializerFactory {
  
      public TimeDeserializerFactory(Class javaType, QName xmlType) {
          super(TimeDeserializer.class, xmlType, javaType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/TimeSerializer.java
  
  Index: TimeSerializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.xml.sax.Attributes;
  
  import javax.xml.namespace.QName;
  
  import java.io.IOException;
  
  import org.apache.axis.Constants;
  import org.apache.axis.types.Time;
  import org.apache.axis.wsdl.fromJava.Types;
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializationContext;
  
  import java.text.SimpleDateFormat;
  import java.util.Calendar;
  import java.util.Date;
  import java.util.GregorianCalendar;
  import java.util.TimeZone;
  
  /**
   * Serializer for the xsd:time XML schema type
   *
   * @author Tom Jordahl (tomj@macromedia.com)
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#time">XML Schema 3.2.8</a>
   */
  public class TimeSerializer implements Serializer {
  
      /**
       * Serialize a Time.
       */
      public void serialize(QName name, Attributes attributes,
                            Object value, SerializationContext context)
          throws IOException
      {
          context.startElement(name, attributes);
          String fdate;
  
          // Time objects know how to format themselves
          fdate = ((Time) value).toString();
  
          context.writeString(fdate);
          context.endElement();
      }
  
      public String getMechanismType() { return Constants.AXIS_SAX; }
  
      /**
       * Return XML schema for the specified type, suitable for insertion into
       * the <types> element of a WSDL document.
       *
       * @param types the Java2WSDL Types object which holds the context
       *              for the WSDL being generated.
       * @return true if we wrote a schema, false if we didn't.
       * @see org.apache.axis.wsdl.fromJava.Types
       */
      public boolean writeSchema(Types types) throws Exception {
          return false;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/TimeSerializerFactory.java
  
  Index: TimeSerializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.xml.sax.Attributes;
  import org.xml.sax.SAXException;
  
  import javax.xml.namespace.QName;
  
  import java.io.IOException;
  
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializerFactory;
  import org.apache.axis.encoding.SerializationContext;
  import org.apache.axis.encoding.Deserializer;
  import org.apache.axis.encoding.DeserializerFactory;
  import org.apache.axis.encoding.DeserializationContext;
  import org.apache.axis.encoding.Deserializer;
  /**
   * SerializerFactory for Time
   *
   * @author Tom Jordahl (tomj@macromedia.com)
   */
  public class TimeSerializerFactory extends BaseSerializerFactory {
      public TimeSerializerFactory(Class javaType, QName xmlType) {
          super(TimeSerializer.class, true, xmlType, javaType);   // true indicates shared class
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedByteDeserializer.java
  
  Index: UnsignedByteDeserializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.encoding.ser.SimpleDeserializer;
  import org.apache.axis.types.UnsignedByte;
  import javax.xml.namespace.QName;
  
  /**
   * Deserializer for xsd:unsignedByte elements
   *
   * @author Chris Haddad (chaddad@cobia.net)
   */
  public class UnsignedByteDeserializer extends SimpleDeserializer
  {
      public Object makeValue(String source) throws Exception {
          return new UnsignedByte(Long.parseLong(source));
      } // makeValue
  
      public UnsignedByteDeserializer(Class javaType, QName xmlType) {
          super(javaType, xmlType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedByteDeserializerFactory.java
  
  Index: UnsignedByteDeserializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.encoding.ser.BaseDeserializerFactory;
  
  import javax.xml.namespace.QName;
  
  /**
   * DeserializerFactory for xsd:unsignedByte
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedByteDeserializerFactory extends BaseDeserializerFactory {
      public UnsignedByteDeserializerFactory(Class javaType, QName xmlType) {
          super(UnsignedByteDeserializer.class, xmlType, javaType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedByteSerializer.java
  
  Index: UnsignedByteSerializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.Constants;
  import org.apache.axis.wsdl.fromJava.Types;
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializerFactory;
  import org.apache.axis.encoding.SerializationContext;
  import org.apache.axis.types.UnsignedByte;
  import org.apache.axis.utils.JavaUtils;
  import org.xml.sax.Attributes;
  
  import java.io.IOException;
  import javax.xml.namespace.QName;
  
  /**
   * Serializer for xsd:unsignedByte
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedByte">XML Schema 3.3.24</a>
   */
  public class UnsignedByteSerializer implements Serializer {
  
      public QName xmlType;
      public Class javaType;
      public UnsignedByteSerializer(Class javaType, QName xmlType) {
          this.xmlType = xmlType;
          this.javaType = javaType;
      }
  
      /**
       * Serialize an unsigned integer quantity.
       */
      public void serialize(QName name, Attributes attributes,
                            Object value, SerializationContext context)
          throws IOException
      {
          context.startElement(name, attributes);
  
          value = JavaUtils.convert(value, javaType);
          if (javaType == UnsignedByte.class) {
              context.writeString(value.toString());
          }
          context.endElement();
      }
  
      public String getMechanismType() { return Constants.AXIS_SAX; }
  
      /**
       * Return XML schema for the specified type, suitable for insertion into
       * the <types> element of a WSDL document.
       *
       * @param types the Java2WSDL Types object which holds the context
       *              for the WSDL being generated.
       * @return true if we wrote a schema, false if we didn't.
       * @see org.apache.axis.wsdl.fromJava.Types
       */
      public boolean writeSchema(Types types) throws Exception {
          return false;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedByteSerializerFactory.java
  
  Index: UnsignedByteSerializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import javax.xml.namespace.QName;
  
  import org.apache.axis.encoding.ser.BaseSerializerFactory;
  /**
   * SerializerFactory for xsd:unsignedByte
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedByteSerializerFactory extends BaseSerializerFactory {
      public UnsignedByteSerializerFactory(Class javaType, QName xmlType) {
          super(UnsignedByteSerializer.class, true, xmlType, javaType);   // true indicates shared class
      }
  
    }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedIntDeserializer.java
  
  Index: UnsignedIntDeserializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.types.UnsignedInt;
  import org.apache.axis.encoding.ser.SimpleDeserializer;
  import javax.xml.namespace.QName;
  
  /**
   * Deserializer for xsd:unsignedInt elements
   *
   * @author Chris Haddad (chaddad@cobia.net)
   */
  public class UnsignedIntDeserializer extends SimpleDeserializer
  {
      public Object makeValue(String source) throws Exception {
          return new UnsignedInt(Long.parseLong(source));
      } // makeValue
  
      public UnsignedIntDeserializer(Class javaType, QName xmlType) {
          super(javaType, xmlType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedIntDeserializerFactory.java
  
  Index: UnsignedIntDeserializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.encoding.ser.BaseDeserializerFactory;
  
  import javax.xml.namespace.QName;
  
  /**
   * DeserializerFactory for xsd:unsignedInt
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedIntDeserializerFactory extends BaseDeserializerFactory {
      public UnsignedIntDeserializerFactory(Class javaType, QName xmlType) {
          super(UnsignedIntDeserializer.class, xmlType, javaType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedIntSerializer.java
  
  Index: UnsignedIntSerializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.Constants;
  import org.apache.axis.wsdl.fromJava.Types;
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializerFactory;
  import org.apache.axis.encoding.SerializationContext;
  import org.apache.axis.types.UnsignedInt;
  import org.apache.axis.utils.JavaUtils;
  import org.xml.sax.Attributes;
  
  import java.io.IOException;
  import javax.xml.namespace.QName;
  
  /**
   * Serializer for xsd:unsignedInt
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedInt">XML Schema 3.3.22</a>
   */
  public class UnsignedIntSerializer implements Serializer {
  
      public QName xmlType;
      public Class javaType;
      public UnsignedIntSerializer(Class javaType, QName xmlType) {
          this.xmlType = xmlType;
          this.javaType = javaType;
      }
  
      /**
       * Serialize an unsigned integer quantity.
       */
      public void serialize(QName name, Attributes attributes,
                            Object value, SerializationContext context)
          throws IOException
      {
          context.startElement(name, attributes);
  
          value = JavaUtils.convert(value, javaType);
          if (javaType == UnsignedInt.class) {
              context.writeString(value.toString());
          }
          context.endElement();
      }
  
      public String getMechanismType() { return Constants.AXIS_SAX; }
  
      /**
       * Return XML schema for the specified type, suitable for insertion into
       * the <types> element of a WSDL document.
       *
       * @param types the Java2WSDL Types object which holds the context
       *              for the WSDL being generated.
       * @return true if we wrote a schema, false if we didn't.
       * @see org.apache.axis.wsdl.fromJava.Types
       */
      public boolean writeSchema(Types types) throws Exception {
          return false;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedIntSerializerFactory.java
  
  Index: UnsignedIntSerializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import javax.xml.namespace.QName;
  
  import java.io.IOException;
  
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializerFactory;
  import org.apache.axis.encoding.SerializationContext;
  /**
   * SerializerFactory for xsd:unsignedInt
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedIntSerializerFactory extends BaseSerializerFactory {
      public UnsignedIntSerializerFactory(Class javaType, QName xmlType) {
          super(UnsignedIntSerializer.class, true, xmlType, javaType);   // true indicates shared class
      }
  
    }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedLongDeserializer.java
  
  Index: UnsignedLongDeserializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.encoding.ser.SimpleDeserializer;
  import org.apache.axis.types.UnsignedLong;
  import javax.xml.namespace.QName;
  
  /**
   * Deserializer for xsd:unsignedLong elements
   *
   * @author Chris Haddad (chaddad@cobia.net)
   */
  public class UnsignedLongDeserializer extends SimpleDeserializer
  {
      public Object makeValue(String source) throws Exception {
        // do we have to add .0
          return new UnsignedLong(Double.parseDouble(source));
      } // makeValue
  
      public UnsignedLongDeserializer(Class javaType, QName xmlType) {
          super(javaType, xmlType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedLongDeserializerFactory.java
  
  Index: UnsignedLongDeserializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import javax.xml.namespace.QName;
  
  /**
   * DeserializerFactory for xsd:unsignedLong
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedLongDeserializerFactory extends BaseDeserializerFactory {
      public UnsignedLongDeserializerFactory(Class javaType, QName xmlType) {
          super(UnsignedLongDeserializer.class, xmlType, javaType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedLongSerializer.java
  
  Index: UnsignedLongSerializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.Constants;
  import org.apache.axis.wsdl.fromJava.Types;
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializerFactory;
  import org.apache.axis.encoding.SerializationContext;
  import org.apache.axis.types.UnsignedLong;
  import org.apache.axis.utils.JavaUtils;
  import org.xml.sax.Attributes;
  
  import java.io.IOException;
  import javax.xml.namespace.QName;
  
  /**
   * Serializer for xsd:unsignedLong
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedLong">XML Schema 3.3.21</a>
   */
  public class UnsignedLongSerializer implements Serializer {
  
      public QName xmlType;
      public Class javaType;
      public UnsignedLongSerializer(Class javaType, QName xmlType) {
          this.xmlType = xmlType;
          this.javaType = javaType;
      }
  
      /**
       * Serialize an unsigned integer quantity.
       */
      public void serialize(QName name, Attributes attributes,
                            Object value, SerializationContext context)
          throws IOException
      {
          context.startElement(name, attributes);
  
          value = JavaUtils.convert(value, javaType);
          if (javaType == UnsignedLong.class) {
              context.writeString(value.toString());
          }
          context.endElement();
      }
  
      public String getMechanismType() { return Constants.AXIS_SAX; }
  
      /**
       * Return XML schema for the specified type, suitable for insertion into
       * the <types> element of a WSDL document.
       *
       * @param types the Java2WSDL Types object which holds the context
       *              for the WSDL being generated.
       * @return true if we wrote a schema, false if we didn't.
       * @see org.apache.axis.wsdl.fromJava.Types
       */
      public boolean writeSchema(Types types) throws Exception {
          return false;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedLongSerializerFactory.java
  
  Index: UnsignedLongSerializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  
  import javax.xml.namespace.QName;
  
  import org.apache.axis.encoding.ser.BaseSerializerFactory;
  /**
   * SerializerFactory for xsd:unsignedLong
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedLongSerializerFactory extends BaseSerializerFactory {
      public UnsignedLongSerializerFactory(Class javaType, QName xmlType) {
          super(UnsignedLongSerializer.class, true, xmlType, javaType);   // true indicates shared class
      }
  
    }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedShortDeserializer.java
  
  Index: UnsignedShortDeserializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.encoding.ser.SimpleDeserializer;
  import org.apache.axis.types.UnsignedShort;
  import javax.xml.namespace.QName;
  
  /**
   * Deserializer for xsd:unsignedShort elements
   *
   * @author Chris Haddad (chaddad@cobia.net)
   */
  public class UnsignedShortDeserializer extends SimpleDeserializer
  {
      public Object makeValue(String source) throws Exception {
          return new UnsignedShort(Long.parseLong(source));
      } // makeValue
  
      public UnsignedShortDeserializer(Class javaType, QName xmlType) {
          super(javaType, xmlType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedShortDeserializerFactory.java
  
  Index: UnsignedShortDeserializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import javax.xml.namespace.QName;
  
  /**
   * DeserializerFactory for xsd:unsignedShort
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedShortDeserializerFactory extends BaseDeserializerFactory {
      public UnsignedShortDeserializerFactory(Class javaType, QName xmlType) {
          super(UnsignedShortDeserializer.class, xmlType, javaType);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedShortSerializer.java
  
  Index: UnsignedShortSerializer.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import org.apache.axis.Constants;
  import org.apache.axis.wsdl.fromJava.Types;
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializerFactory;
  import org.apache.axis.encoding.SerializationContext;
  import org.apache.axis.types.UnsignedShort;
  import org.apache.axis.utils.JavaUtils;
  import org.xml.sax.Attributes;
  
  import java.io.IOException;
  import javax.xml.namespace.QName;
  
  /**
   * Serializer for xsd:unsignedShort
   *
   * @author Chris Haddad <ch...@cobia.net>
   * @see <a href="http://www.w3.org/TR/xmlschema-2/#unsignedShort">XML Schema 3.3.23</a>
   */
  public class UnsignedShortSerializer implements Serializer {
  
      public QName xmlType;
      public Class javaType;
      public UnsignedShortSerializer(Class javaType, QName xmlType) {
          this.xmlType = xmlType;
          this.javaType = javaType;
      }
  
      /**
       * Serialize an unsigned integer quantity.
       */
      public void serialize(QName name, Attributes attributes,
                            Object value, SerializationContext context)
          throws IOException
      {
          context.startElement(name, attributes);
  
          value = JavaUtils.convert(value, javaType);
          if (javaType == UnsignedShort.class) {
              context.writeString(value.toString());
          }
          context.endElement();
      }
  
      public String getMechanismType() { return Constants.AXIS_SAX; }
  
      /**
       * Return XML schema for the specified type, suitable for insertion into
       * the <types> element of a WSDL document.
       *
       * @param types the Java2WSDL Types object which holds the context
       *              for the WSDL being generated.
       * @return true if we wrote a schema, false if we didn't.
       * @see org.apache.axis.wsdl.fromJava.Types
       */
      public boolean writeSchema(Types types) throws Exception {
          return false;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/ser/UnsignedShortSerializerFactory.java
  
  Index: UnsignedShortSerializerFactory.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.axis.encoding.ser;
  
  import javax.xml.namespace.QName;
  
  import java.io.IOException;
  
  import org.apache.axis.encoding.Serializer;
  import org.apache.axis.encoding.SerializerFactory;
  import org.apache.axis.encoding.SerializationContext;
  /**
   * SerializerFactory for xsd:unsignedShort
   *
   * @author Chris Haddad <ch...@cobia.net>
   */
  public class UnsignedShortSerializerFactory extends BaseSerializerFactory {
      public UnsignedShortSerializerFactory(Class javaType, QName xmlType) {
          super(UnsignedShortSerializer.class, true, xmlType, javaType);   // true indicates shared class
      }
  
    }
  
  
  
  1.3       +594 -512  xml-axis/java/samples/echo/InteropTest.wsdl
  
  Index: InteropTest.wsdl
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/samples/echo/InteropTest.wsdl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- InteropTest.wsdl	9 Jul 2002 15:17:30 -0000	1.2
  +++ InteropTest.wsdl	7 Aug 2002 21:02:10 -0000	1.3
  @@ -5,542 +5,624 @@
   
           <!-- These are the types defined for Round 2 A and B -->
           <!-- These types were copied from white mesa InteropTest.wsdl/InteropTestB.wsdl -->
  -	<types>
  -		<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
  -	                <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
  -			<complexType name="ArrayOfstring">
  -				<complexContent>
  -					<restriction base="SOAP-ENC:Array">
  -						<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
  -					</restriction>
  -				</complexContent>
  -			</complexType>
  -			<complexType name="ArrayOfint">
  -				<complexContent>
  -					<restriction base="SOAP-ENC:Array">
  -						<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
  -					</restriction>
  -				</complexContent>
  -			</complexType>
  -			<complexType name="ArrayOffloat">
  -				<complexContent>
  -					<restriction base="SOAP-ENC:Array">
  -						<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
  -					</restriction>
  -				</complexContent>
  -			</complexType>
  -			<complexType name="ArrayOfSOAPStruct">
  -				<complexContent>
  -					<restriction base="SOAP-ENC:Array">
  -						<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
  -					</restriction>
  -				</complexContent>
  -			</complexType>
  -			<complexType name="SOAPStruct">
  -				<all>
  -					<element name="varString" type="string"/>
  -					<element name="varInt" type="int"/>
  -					<element name="varFloat" type="float"/>
  -				</all>
  -			</complexType>
  -			<complexType name="SOAPStructStruct">
  -				<all>
  -					<element name="varString" type="string"/>
  -					<element name="varInt" type="int"/>
  -					<element name="varFloat" type="float"/>
  -					<element name="varStruct" type="s:SOAPStruct"/>
  -				</all>
  -			</complexType>
  -			<complexType name="SOAPArrayStruct">
  -				<all>
  -					<element name="varString" type="string"/>
  -					<element name="varInt" type="int"/>
  -					<element name="varFloat" type="float"/>
  -					<element name="varArray" type="s:ArrayOfstring"/>
  -				</all>
  -			</complexType>
  +  <types>
  +    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
  +                  <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
  +      <complexType name="ArrayOfstring">
  +        <complexContent>
  +          <restriction base="SOAP-ENC:Array">
  +            <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
  +          </restriction>
  +        </complexContent>
  +      </complexType>
  +      <complexType name="ArrayOfint">
  +        <complexContent>
  +          <restriction base="SOAP-ENC:Array">
  +            <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
  +          </restriction>
  +        </complexContent>
  +      </complexType>
  +      <complexType name="ArrayOffloat">
  +        <complexContent>
  +          <restriction base="SOAP-ENC:Array">
  +            <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
  +          </restriction>
  +        </complexContent>
  +      </complexType>
  +      <complexType name="ArrayOfSOAPStruct">
  +        <complexContent>
  +          <restriction base="SOAP-ENC:Array">
  +            <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
  +          </restriction>
  +        </complexContent>
  +      </complexType>
  +      <complexType name="SOAPStruct">
  +        <all>
  +          <element name="varString" type="string"/>
  +          <element name="varInt" type="int"/>
  +          <element name="varFloat" type="float"/>
  +        </all>
  +      </complexType>
  +      <complexType name="SOAPStructStruct">
  +        <all>
  +          <element name="varString" type="string"/>
  +          <element name="varInt" type="int"/>
  +          <element name="varFloat" type="float"/>
  +          <element name="varStruct" type="s:SOAPStruct"/>
  +        </all>
  +      </complexType>
  +      <complexType name="SOAPArrayStruct">
  +        <all>
  +          <element name="varString" type="string"/>
  +          <element name="varInt" type="int"/>
  +          <element name="varFloat" type="float"/>
  +          <element name="varArray" type="s:ArrayOfstring"/>
  +        </all>
  +      </complexType>
               <complexType name="ArrayOfString2D">
                   <complexContent>
  -			<restriction base="SOAP-ENC:Array">
  -	                    <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[,]"/>
  -			</restriction>
  +      <restriction base="SOAP-ENC:Array">
  +                      <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[,]"/>
  +      </restriction>
                   </complexContent>
               </complexType>
   
  -			<complexType name="ArrayOfMap">
  -				<complexContent>
  -					<restriction base="SOAP-ENC:Array">
  -						<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xml-soap:Map[]"/>
  -					</restriction>
  -				</complexContent>
  -			</complexType>
  -		</schema>
  -	</types>
  +      <complexType name="ArrayOfMap">
  +        <complexContent>
  +          <restriction base="SOAP-ENC:Array">
  +            <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xml-soap:Map[]"/>
  +          </restriction>
  +        </complexContent>
  +      </complexType>
  +    </schema>
  +  </types>
   
           <!-- message, portType and binding for Round 2 tests -->
           <!-- Copied from white mesa InteropTest.wsdl -->
  -	<message name="echoStringRequest">
  -		<part name="inputString" type="xsd:string"/>
  -	</message>
  -	<message name="echoStringResponse">
  -		<part name="return" type="xsd:string"/>
  -	</message>
  -	<message name="echoStringArrayRequest">
  -		<part name="inputStringArray" type="s:ArrayOfstring"/>
  -	</message>
  -	<message name="echoStringArrayResponse">
  -		<part name="return" type="s:ArrayOfstring"/>
  -	</message>
  -	<message name="echoIntegerRequest">
  -		<part name="inputInteger" type="xsd:int"/>
  -	</message>
  -	<message name="echoIntegerResponse">
  -		<part name="return" type="xsd:int"/>
  -	</message>
  -	<message name="echoIntegerArrayRequest">
  -		<part name="inputIntegerArray" type="s:ArrayOfint"/>
  -	</message>
  -	<message name="echoIntegerArrayResponse">
  -		<part name="return" type="s:ArrayOfint"/>
  -	</message>
  -	<message name="echoFloatRequest">
  -		<part name="inputFloat" type="xsd:float"/>
  -	</message>
  -	<message name="echoFloatResponse">
  -		<part name="return" type="xsd:float"/>
  -	</message>
  -	<message name="echoFloatArrayRequest">
  -		<part name="inputFloatArray" type="s:ArrayOffloat"/>
  -	</message>
  -	<message name="echoFloatArrayResponse">
  -		<part name="return" type="s:ArrayOffloat"/>
  -	</message>
  -	<message name="echoStructRequest">
  -		<part name="inputStruct" type="s:SOAPStruct"/>
  -	</message>
  -	<message name="echoStructResponse">
  -		<part name="return" type="s:SOAPStruct"/>
  -	</message>
  -	<message name="echoStructArrayRequest">
  -		<part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
  -	</message>
  -	<message name="echoStructArrayResponse">
  -		<part name="return" type="s:ArrayOfSOAPStruct"/>
  -	</message>
  -	<message name="echoVoidRequest"/>
  -	<message name="echoVoidResponse"/>
  -	<message name="echoBase64Request">
  -		<part name="inputBase64" type="xsd:base64Binary"/>
  -	</message>
  -	<message name="echoBase64Response">
  -		<part name="return" type="xsd:base64Binary"/>
  -	</message>
  -	<message name="echoDateRequest">
  -		<part name="inputDate" type="xsd:dateTime"/>
  -	</message>
  -	<message name="echoDateResponse">
  -		<part name="return" type="xsd:dateTime"/>
  -	</message>
  -	<message name="echoHexBinaryRequest">
  -		<part name="inputHexBinary" type="xsd:hexBinary"/>
  -	</message>
  -	<message name="echoHexBinaryResponse">
  -		<part name="return" type="xsd:hexBinary"/>
  -	</message>
  -	<message name="echoDecimalRequest">
  -		<part name="inputDecimal" type="xsd:decimal"/>
  -	</message>
  -	<message name="echoDecimalResponse">
  -		<part name="return" type="xsd:decimal"/>
  -	</message>
  -	<message name="echoBooleanRequest">
  -		<part name="inputBoolean" type="xsd:boolean"/>
  -	</message>
  -	<message name="echoBooleanResponse">
  -		<part name="return" type="xsd:boolean"/>
  -	</message>
  +  <message name="echoStringRequest">
  +    <part name="inputString" type="xsd:string"/>
  +  </message>
  +  <message name="echoStringResponse">
  +    <part name="return" type="xsd:string"/>
  +  </message>
  +  <message name="echoStringArrayRequest">
  +    <part name="inputStringArray" type="s:ArrayOfstring"/>
  +  </message>
  +  <message name="echoStringArrayResponse">
  +    <part name="return" type="s:ArrayOfstring"/>
  +  </message>
  +  <message name="echoIntegerRequest">
  +    <part name="inputInteger" type="xsd:int"/>
  +  </message>
  +  <message name="echoIntegerResponse">
  +    <part name="return" type="xsd:int"/>
  +  </message>
  +  <message name="echoIntegerArrayRequest">
  +    <part name="inputIntegerArray" type="s:ArrayOfint"/>
  +  </message>
  +  <message name="echoIntegerArrayResponse">
  +    <part name="return" type="s:ArrayOfint"/>
  +  </message>
  +  <message name="echoFloatRequest">
  +    <part name="inputFloat" type="xsd:float"/>
  +  </message>
  +  <message name="echoFloatResponse">
  +    <part name="return" type="xsd:float"/>
  +  </message>
  +  <message name="echoFloatArrayRequest">
  +    <part name="inputFloatArray" type="s:ArrayOffloat"/>
  +  </message>
  +  <message name="echoFloatArrayResponse">
  +    <part name="return" type="s:ArrayOffloat"/>
  +  </message>
  +  <message name="echoStructRequest">
  +    <part name="inputStruct" type="s:SOAPStruct"/>
  +  </message>
  +  <message name="echoStructResponse">
  +    <part name="return" type="s:SOAPStruct"/>
  +  </message>
  +  <message name="echoStructArrayRequest">
  +    <part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
  +  </message>
  +  <message name="echoStructArrayResponse">
  +    <part name="return" type="s:ArrayOfSOAPStruct"/>
  +  </message>
  +  <message name="echoVoidRequest"/>
  +  <message name="echoVoidResponse"/>
  +  <message name="echoBase64Request">
  +    <part name="inputBase64" type="xsd:base64Binary"/>
  +  </message>
  +  <message name="echoBase64Response">
  +    <part name="return" type="xsd:base64Binary"/>
  +  </message>
  +  <message name="echoDateRequest">
  +    <part name="inputDate" type="xsd:dateTime"/>
  +  </message>
  +  <message name="echoDateResponse">
  +    <part name="return" type="xsd:dateTime"/>
  +  </message>
  +  <message name="echoHexBinaryRequest">
  +    <part name="inputHexBinary" type="xsd:hexBinary"/>
  +  </message>
  +  <message name="echoHexBinaryResponse">
  +    <part name="return" type="xsd:hexBinary"/>
  +  </message>
  +  <message name="echoDecimalRequest">
  +    <part name="inputDecimal" type="xsd:decimal"/>
  +  </message>
  +  <message name="echoDecimalResponse">
  +    <part name="return" type="xsd:decimal"/>
  +  </message>
  +  <message name="echoBooleanRequest">
  +    <part name="inputBoolean" type="xsd:boolean"/>
  +  </message>
  +  <message name="echoBooleanResponse">
  +    <part name="return" type="xsd:boolean"/>
  +  </message>
   
           <!-- messages for Round 2B tests -->
           <!-- Copied from white mesa InteropTestB.wsdl -->
  -	<message name="echoStructAsSimpleTypesRequest">
  -		<part name="inputStruct" type="s:SOAPStruct"/>
  -	</message>
  -	<message name="echoStructAsSimpleTypesResponse">
  -		<part name="outputString" type="xsd:string"/>
  -		<part name="outputInteger" type="xsd:int"/>
  -		<part name="outputFloat" type="xsd:float"/>
  -	</message>
  -	<message name="echoSimpleTypesAsStructRequest">
  -		<part name="inputString" type="xsd:string"/>
  -		<part name="inputInteger" type="xsd:int"/>
  -		<part name="inputFloat" type="xsd:float"/>
  -	</message>
  -	<message name="echoSimpleTypesAsStructResponse">
  -		<part name="return" type="s:SOAPStruct"/>
  -	</message>
  -	<message name="echo2DStringArrayRequest">
  -		<part name="input2DStringArray" type="s:ArrayOfString2D"/>
  -	</message>
  -	<message name="echo2DStringArrayResponse">
  -		<part name="return" type="s:ArrayOfString2D"/>
  -	</message>
  -	<message name="echoNestedStructRequest">
  -		<part name="inputStruct" type="s:SOAPStructStruct"/>
  -	</message>
  -	<message name="echoNestedStructResponse">
  -		<part name="return" type="s:SOAPStructStruct"/>
  -	</message>
  -		<message name="echoNestedArrayRequest">
  -		<part name="inputStruct" type="s:SOAPArrayStruct"/>
  -	</message>
  -	<message name="echoNestedArrayResponse">
  -		<part name="return" type="s:SOAPArrayStruct"/>
  -	</message>
  -
  -	<message name="echoMapRequest">
  -		<part name="input" type="xml-soap:Map"/>
  -	</message>
  -	<message name="echoMapResponse">
  -		<part name="return" type="xml-soap:Map"/>
  -	</message>
  -
  -	<message name="echoMapArrayRequest">
  -		<part name="input" type="s:ArrayOfMap"/>
  -	</message>
  -	<message name="echoMapArrayResponse">
  -		<part name="return" type="s:ArrayOfMap"/>
  -	</message>
  -
  -	<message name="echoTokenRequest">
  -		<part name="inputToken" type="xsd:token"/>
  -	</message>
  -	<message name="echoTokenResponse">
  -		<part name="return" type="xsd:token"/>
  -	</message>
  -
  -	<message name="echoNormalizedStringRequest">
  -		<part name="inputNormalizedString" type="xsd:normalizedString"/>
  -	</message>
  -	<message name="echoNormalizedStringResponse">
  -		<part name="return" type="xsd:normalizedString"/>
  -	</message>
  -
  -	<portType name="InteropTestPortType">
  -		<operation name="echoString" parameterOrder="inputString">
  -			<input message="tns:echoStringRequest"/>
  -			<output message="tns:echoStringResponse"/>
  -		</operation>
  -		<operation name="echoStringArray" parameterOrder="inputStringArray">
  -			<input message="tns:echoStringArrayRequest"/>
  -			<output message="tns:echoStringArrayResponse"/>
  -		</operation>
  -		<operation name="echoInteger" parameterOrder="inputInteger">
  -			<input message="tns:echoIntegerRequest"/>
  -			<output message="tns:echoIntegerResponse"/>
  -		</operation>
  -		<operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
  -			<input message="tns:echoIntegerArrayRequest"/>
  -			<output message="tns:echoIntegerArrayResponse"/>
  -		</operation>
  -		<operation name="echoFloat" parameterOrder="inputFloat">
  -			<input message="tns:echoFloatRequest"/>
  -			<output message="tns:echoFloatResponse"/>
  -		</operation>
  -		<operation name="echoFloatArray" parameterOrder="inputFloatArray">
  -			<input message="tns:echoFloatArrayRequest"/>
  -			<output message="tns:echoFloatArrayResponse"/>
  -		</operation>
  -		<operation name="echoStruct" parameterOrder="inputStruct">
  -			<input message="tns:echoStructRequest"/>
  -			<output message="tns:echoStructResponse"/>
  -		</operation>
  -		<operation name="echoStructArray" parameterOrder="inputStructArray">
  -			<input message="tns:echoStructArrayRequest"/>
  -			<output message="tns:echoStructArrayResponse"/>
  -		</operation>
  -		<operation name="echoVoid">
  -			<input message="tns:echoVoidRequest"/>
  -			<output message="tns:echoVoidResponse"/>
  -		</operation>
  -		<operation name="echoBase64" parameterOrder="inputBase64">
  -			<input message="tns:echoBase64Request"/>
  -			<output message="tns:echoBase64Response"/>
  -		</operation>
  -		<operation name="echoDate" parameterOrder="inputDate">
  -			<input message="tns:echoDateRequest"/>
  -			<output message="tns:echoDateResponse"/>
  -		</operation>
  -		<operation name="echoHexBinary" parameterOrder="inputHexBinary">
  -			<input message="tns:echoHexBinaryRequest"/>
  -			<output message="tns:echoHexBinaryResponse"/>
  -		</operation>
  -		<operation name="echoDecimal" parameterOrder="inputDecimal">
  -			<input message="tns:echoDecimalRequest"/>
  -			<output message="tns:echoDecimalResponse"/>
  -		</operation>
  -		<operation name="echoBoolean" parameterOrder="inputBoolean">
  -			<input message="tns:echoBooleanRequest"/>
  -			<output message="tns:echoBooleanResponse"/>
  -		</operation>
  +  <message name="echoStructAsSimpleTypesRequest">
  +    <part name="inputStruct" type="s:SOAPStruct"/>
  +  </message>
  +  <message name="echoStructAsSimpleTypesResponse">
  +    <part name="outputString" type="xsd:string"/>
  +    <part name="outputInteger" type="xsd:int"/>
  +    <part name="outputFloat" type="xsd:float"/>
  +  </message>
  +  <message name="echoSimpleTypesAsStructRequest">
  +    <part name="inputString" type="xsd:string"/>
  +    <part name="inputInteger" type="xsd:int"/>
  +    <part name="inputFloat" type="xsd:float"/>
  +  </message>
  +  <message name="echoSimpleTypesAsStructResponse">
  +    <part name="return" type="s:SOAPStruct"/>
  +  </message>
  +  <message name="echo2DStringArrayRequest">
  +    <part name="input2DStringArray" type="s:ArrayOfString2D"/>
  +  </message>
  +  <message name="echo2DStringArrayResponse">
  +    <part name="return" type="s:ArrayOfString2D"/>
  +  </message>
  +  <message name="echoNestedStructRequest">
  +    <part name="inputStruct" type="s:SOAPStructStruct"/>
  +  </message>
  +  <message name="echoNestedStructResponse">
  +    <part name="return" type="s:SOAPStructStruct"/>
  +  </message>
  +    <message name="echoNestedArrayRequest">
  +    <part name="inputStruct" type="s:SOAPArrayStruct"/>
  +  </message>
  +  <message name="echoNestedArrayResponse">
  +    <part name="return" type="s:SOAPArrayStruct"/>
  +  </message>
  +
  +  <message name="echoMapRequest">
  +    <part name="input" type="xml-soap:Map"/>
  +  </message>
  +  <message name="echoMapResponse">
  +    <part name="return" type="xml-soap:Map"/>
  +  </message>
  +
  +  <message name="echoMapArrayRequest">
  +    <part name="input" type="s:ArrayOfMap"/>
  +  </message>
  +  <message name="echoMapArrayResponse">
  +    <part name="return" type="s:ArrayOfMap"/>
  +  </message>
  +
  +  <message name="echoTokenRequest">
  +    <part name="inputToken" type="xsd:token"/>
  +  </message>
  +  <message name="echoTokenResponse">
  +    <part name="return" type="xsd:token"/>
  +  </message>
  +
  +  <message name="echoNormalizedStringRequest">
  +    <part name="inputNormalizedString" type="xsd:normalizedString"/>
  +  </message>
  +  <message name="echoNormalizedStringResponse">
  +    <part name="return" type="xsd:normalizedString"/>
  +  </message>
  +
  +  <message name="echoUnsignedLongRequest">
  +    <part name="inputUnsignedLong" type="xsd:unsignedLong"/>
  +  </message>
  +  <message name="echoUnsignedLongResponse">
  +    <part name="return" type="xsd:unsignedLong"/>
  +  </message>
  +
  +  <message name="echoUnsignedIntRequest">
  +    <part name="inputUnsignedInt" type="xsd:unsignedInt"/>
  +  </message>
  +  <message name="echoUnsignedIntResponse">
  +    <part name="return" type="xsd:unsignedInt"/>
  +  </message>
  +
  +  <message name="echoUnsignedShortRequest">
  +    <part name="inputUnsignedShort" type="xsd:unsignedShort"/>
  +  </message>
  +  <message name="echoUnsignedShortResponse">
  +    <part name="return" type="xsd:unsignedShort"/>
  +  </message>
  +
  +  <message name="echoUnsignedByteRequest">
  +    <part name="inputUnsignedByte" type="xsd:unsignedByte"/>
  +  </message>
  +  <message name="echoUnsignedByteResponse">
  +    <part name="return" type="xsd:unsignedByte"/>
  +  </message>
  +
  +  <portType name="InteropTestPortType">
  +    <operation name="echoString" parameterOrder="inputString">
  +      <input message="tns:echoStringRequest"/>
  +      <output message="tns:echoStringResponse"/>
  +    </operation>
  +    <operation name="echoStringArray" parameterOrder="inputStringArray">
  +      <input message="tns:echoStringArrayRequest"/>
  +      <output message="tns:echoStringArrayResponse"/>
  +    </operation>
  +    <operation name="echoInteger" parameterOrder="inputInteger">
  +      <input message="tns:echoIntegerRequest"/>
  +      <output message="tns:echoIntegerResponse"/>
  +    </operation>
  +    <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
  +      <input message="tns:echoIntegerArrayRequest"/>
  +      <output message="tns:echoIntegerArrayResponse"/>
  +    </operation>
  +    <operation name="echoFloat" parameterOrder="inputFloat">
  +      <input message="tns:echoFloatRequest"/>
  +      <output message="tns:echoFloatResponse"/>
  +    </operation>
  +    <operation name="echoFloatArray" parameterOrder="inputFloatArray">
  +      <input message="tns:echoFloatArrayRequest"/>
  +      <output message="tns:echoFloatArrayResponse"/>
  +    </operation>
  +    <operation name="echoStruct" parameterOrder="inputStruct">
  +      <input message="tns:echoStructRequest"/>
  +      <output message="tns:echoStructResponse"/>
  +    </operation>
  +    <operation name="echoStructArray" parameterOrder="inputStructArray">
  +      <input message="tns:echoStructArrayRequest"/>
  +      <output message="tns:echoStructArrayResponse"/>
  +    </operation>
  +    <operation name="echoVoid">
  +      <input message="tns:echoVoidRequest"/>
  +      <output message="tns:echoVoidResponse"/>
  +    </operation>
  +    <operation name="echoBase64" parameterOrder="inputBase64">
  +      <input message="tns:echoBase64Request"/>
  +      <output message="tns:echoBase64Response"/>
  +    </operation>
  +    <operation name="echoDate" parameterOrder="inputDate">
  +      <input message="tns:echoDateRequest"/>
  +      <output message="tns:echoDateResponse"/>
  +    </operation>
  +    <operation name="echoHexBinary" parameterOrder="inputHexBinary">
  +      <input message="tns:echoHexBinaryRequest"/>
  +      <output message="tns:echoHexBinaryResponse"/>
  +    </operation>
  +    <operation name="echoDecimal" parameterOrder="inputDecimal">
  +      <input message="tns:echoDecimalRequest"/>
  +      <output message="tns:echoDecimalResponse"/>
  +    </operation>
  +    <operation name="echoBoolean" parameterOrder="inputBoolean">
  +      <input message="tns:echoBooleanRequest"/>
  +      <output message="tns:echoBooleanResponse"/>
  +    </operation>
   
                   <!-- Round2B operations -->
  -		<operation name="echoStructAsSimpleTypes" parameterOrder="inputStruct outputString outputInteger outputFloat">
  -			<input message="tns:echoStructAsSimpleTypesRequest"/>
  -			<output message="tns:echoStructAsSimpleTypesResponse"/>
  -		</operation>
  -		<operation name="echoSimpleTypesAsStruct" parameterOrder="inputString inputInteger inputFloat">
  -			<input message="tns:echoSimpleTypesAsStructRequest"/>
  -			<output message="tns:echoSimpleTypesAsStructResponse"/>
  -		</operation>
  -		<operation name="echo2DStringArray" parameterOrder="input2DStringArray">
  -			<input message="tns:echo2DStringArrayRequest"/>
  -			<output message="tns:echo2DStringArrayResponse"/>
  -		</operation>
  -		<operation name="echoNestedStruct" parameterOrder="inputStruct">
  -			<input message="tns:echoNestedStructRequest"/>
  -			<output message="tns:echoNestedStructResponse"/>
  -		</operation>
  -		<operation name="echoNestedArray" parameterOrder="inputStruct">
  -			<input message="tns:echoNestedArrayRequest"/>
  -			<output message="tns:echoNestedArrayResponse"/>
  -		</operation>
  +    <operation name="echoStructAsSimpleTypes" parameterOrder="inputStruct outputString outputInteger outputFloat">
  +      <input message="tns:echoStructAsSimpleTypesRequest"/>
  +      <output message="tns:echoStructAsSimpleTypesResponse"/>
  +    </operation>
  +    <operation name="echoSimpleTypesAsStruct" parameterOrder="inputString inputInteger inputFloat">
  +      <input message="tns:echoSimpleTypesAsStructRequest"/>
  +      <output message="tns:echoSimpleTypesAsStructResponse"/>
  +    </operation>
  +    <operation name="echo2DStringArray" parameterOrder="input2DStringArray">
  +      <input message="tns:echo2DStringArrayRequest"/>
  +      <output message="tns:echo2DStringArrayResponse"/>
  +    </operation>
  +    <operation name="echoNestedStruct" parameterOrder="inputStruct">
  +      <input message="tns:echoNestedStructRequest"/>
  +      <output message="tns:echoNestedStructResponse"/>
  +    </operation>
  +    <operation name="echoNestedArray" parameterOrder="inputStruct">
  +      <input message="tns:echoNestedArrayRequest"/>
  +      <output message="tns:echoNestedArrayResponse"/>
  +    </operation>
   
   
                   <operation name="echoMap" parameterOrder="input">
  -			<input message="tns:echoMapRequest"/>
  -			<output message="tns:echoMapResponse"/>
  -		</operation>
  +      <input message="tns:echoMapRequest"/>
  +      <output message="tns:echoMapResponse"/>
  +    </operation>
                   <operation name="echoMapArray" parameterOrder="input">
  -			<input message="tns:echoMapArrayRequest"/>
  -			<output message="tns:echoMapArrayResponse"/>
  -		</operation>
  -
  -		<operation name="echoToken">
  -			<input message="tns:echoTokenRequest"/>
  -			<output message="tns:echoTokenResponse"/>
  -		</operation>
  -
  -		<operation name="echoNormalizedString">
  -			<input message="tns:echoNormalizedStringRequest"/>
  -			<output message="tns:echoNormalizedStringResponse"/>
  -		</operation>
  -	</portType>
  -
  -	<binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
  -		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  -		<operation name="echoString">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoStringArray">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoInteger">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoIntegerArray">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoFloat">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoFloatArray">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoStruct">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoStructArray">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoVoid">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoBase64">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoDate">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoHexBinary">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoDecimal">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoBoolean">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  +      <input message="tns:echoMapArrayRequest"/>
  +      <output message="tns:echoMapArrayResponse"/>
  +    </operation>
  +
  +    <operation name="echoToken">
  +      <input message="tns:echoTokenRequest"/>
  +      <output message="tns:echoTokenResponse"/>
  +    </operation>
  +
  +    <operation name="echoNormalizedString">
  +      <input message="tns:echoNormalizedStringRequest"/>
  +      <output message="tns:echoNormalizedStringResponse"/>
  +    </operation>
  +
  +    <operation name="echoUnsignedLong">
  +      <input message="tns:echoUnsignedLongRequest"/>
  +      <output message="tns:echoUnsignedLongResponse"/>
  +    </operation>
  +    <operation name="echoUnsignedInt">
  +      <input message="tns:echoUnsignedIntRequest"/>
  +      <output message="tns:echoUnsignedIntResponse"/>
  +    </operation>
  +    <operation name="echoUnsignedShort">
  +      <input message="tns:echoUnsignedShortRequest"/>
  +      <output message="tns:echoUnsignedShortResponse"/>
  +    </operation>
  +    <operation name="echoUnsignedByte">
  +      <input message="tns:echoUnsignedByteRequest"/>
  +      <output message="tns:echoUnsignedByteResponse"/>
  +    </operation>
  +  </portType>
  +
  +  <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
  +    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  +    <operation name="echoString">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoStringArray">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoInteger">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoIntegerArray">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoFloat">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoFloatArray">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoStruct">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoStructArray">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoVoid">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoBase64">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoDate">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoHexBinary">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoDecimal">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoBoolean">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
   
                   <!-- Round2B Binding operations -->
  -		<operation name="echoStructAsSimpleTypes">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoSimpleTypesAsStruct">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echo2DStringArray">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoNestedStruct">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -		<operation name="echoNestedArray">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  +    <operation name="echoStructAsSimpleTypes">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoSimpleTypesAsStruct">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echo2DStringArray">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoNestedStruct">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoNestedArray">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
   
                   <operation name="echoMap">
                           <soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
                   <operation name="echoMapArray">
                           <soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -
  -		<operation name="echoToken">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -
  -		<operation name="echoNormalizedString">
  -			<soap:operation soapAction="http://soapinterop.org/"/>
  -			<input>
  -				<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</input>
  -			<output>
  -			<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  -			</output>
  -		</operation>
  -	</binding>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +
  +    <operation name="echoToken">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +
  +    <operation name="echoNormalizedString">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +      <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +
  +    <operation name="echoUnsignedLong">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +      <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoUnsignedInt">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +      <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoUnsignedShort">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +      <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +    <operation name="echoUnsignedByte">
  +      <soap:operation soapAction="http://soapinterop.org/"/>
  +      <input>
  +        <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </input>
  +      <output>
  +      <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
  +      </output>
  +    </operation>
  +  </binding>
   
      <!-- Service Description for Axis -->
      <service name="InteropTestService">
  
  
  
  1.3       +37 -4     xml-axis/java/samples/echo/InteropTestSoapBindingImpl.java
  
  Index: InteropTestSoapBindingImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/samples/echo/InteropTestSoapBindingImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- InteropTestSoapBindingImpl.java	9 Jul 2002 15:17:30 -0000	1.2
  +++ InteropTestSoapBindingImpl.java	7 Aug 2002 21:02:10 -0000	1.3
  @@ -3,8 +3,8 @@
    *
    * This file was auto-generated from WSDL
    * by the Apache Axis Wsdl2java emitter.
  - * 
  - * And then it was hand modified to echo 
  + *
  + * And then it was hand modified to echo
    * the arguments back to the caller.
    */
   
  @@ -109,7 +109,7 @@
       /**
        * This method accepts a Token (xsd:token) and echoes it back to the client.
        */
  -    public org.apache.axis.encoding.Token echoToken(org.apache.axis.encoding.Token input) throws java.rmi.RemoteException {
  +    public org.apache.axis.types.Token echoToken(org.apache.axis.types.Token input) throws java.rmi.RemoteException {
           return input;
       }
   
  @@ -117,7 +117,40 @@
        * This method accepts a NormalizedString (xsd:normalizedString) and echoes
        * it back to the client.
        */
  -    public org.apache.axis.encoding.NormalizedString echoNormalizedString(org.apache.axis.encoding.NormalizedString input) throws java.rmi.RemoteException {
  +    public org.apache.axis.types.NormalizedString echoNormalizedString(org.apache.axis.types.NormalizedString input) throws java.rmi.RemoteException {
           return input;
       }
  +
  +        /**
  +         * This method accepts a UnsignedLong (xsd:unsignedLong) and echoes
  +         * it back to the client.
  +         */
  +    public org.apache.axis.types.UnsignedLong echoUnsignedLong(org.apache.axis.types.UnsignedLong input) throws java.rmi.RemoteException {
  +            return input;
  +        }
  +
  +        /**
  +         * This method accepts a UnsignedInt (xsd:unsignedInt) and echoes
  +         * it back to the client.
  +         */
  +    public org.apache.axis.types.UnsignedInt echoUnsignedInt(org.apache.axis.types.UnsignedInt input) throws java.rmi.RemoteException {
  +            return input;
  +        }
  +
  +        /**
  +         * This method accepts a UnsignedShort (xsd:unsignedShort) and echoes
  +         * it back to the client.
  +         */
  +    public org.apache.axis.types.UnsignedShort echoUnsignedShort(org.apache.axis.types.UnsignedShort input) throws java.rmi.RemoteException {
  +            return input;
  +        }
  +
  +        /**
  +         * This method accepts a UnsignedByte (xsd:unsignedByte) and echoes
  +         * it back to the client.
  +         */
  +    public org.apache.axis.types.UnsignedByte echoUnsignedByte(org.apache.axis.types.UnsignedByte input) throws java.rmi.RemoteException {
  +            return input;
  +        }
  +
   }
  
  
  
  1.66      +67 -10    xml-axis/java/samples/echo/TestClient.java
  
  Index: TestClient.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/samples/echo/TestClient.java,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- TestClient.java	22 Jul 2002 19:15:58 -0000	1.65
  +++ TestClient.java	7 Aug 2002 21:02:10 -0000	1.66
  @@ -57,9 +57,13 @@
   
   import org.apache.axis.AxisFault;
   
  -import org.apache.axis.encoding.Hex;
  -import org.apache.axis.encoding.NormalizedString;
  -import org.apache.axis.encoding.Token;
  +import org.apache.axis.types.HexBinary;
  +import org.apache.axis.types.NormalizedString;
  +import org.apache.axis.types.Token;
  +import org.apache.axis.types.UnsignedLong;
  +import org.apache.axis.types.UnsignedInt;
  +import org.apache.axis.types.UnsignedShort;
  +import org.apache.axis.types.UnsignedByte;
   
   import org.apache.axis.utils.JavaUtils;
   import org.apache.axis.utils.Options;
  @@ -121,12 +125,12 @@
          if (obj1.equals(obj2)) return true;
   
          // For comparison purposes, get the array of bytes representing
  -       // the Hex object.
  -       if (obj1 instanceof Hex) {
  -           obj1 = ((Hex) obj1).getBytes();
  +        // the HexBinary object.
  +       if (obj1 instanceof HexBinary) {
  +           obj1 = ((HexBinary) obj1).getBytes();
          }
  -       if (obj2 instanceof Hex) {
  -           obj2 = ((Hex) obj2).getBytes();
  +       if (obj2 instanceof HexBinary) {
  +           obj2 = ((HexBinary) obj2).getBytes();
          }
   
          if (obj1 instanceof Calendar && obj2 instanceof Calendar) {
  @@ -231,6 +235,59 @@
                   throw e;
               }
           }
  +
  +        // Test xsd:unsignedLong
  +        UnsignedLong ulInput = new UnsignedLong(100);
  +        try {
  +            output = binding.echoUnsignedLong(ulInput);
  +            verify("echoUnsignedLong", ulInput, output);
  +        } catch (Exception e) {
  +            if (!testMode) {
  +                verify("echoUnsignedLong", ulInput, e);
  +            } else {
  +                throw e;
  +            }
  +        }
  +
  +        // Test xsd:unsignedInt
  +        UnsignedInt uiInput = new UnsignedInt(101);
  +        try {
  +            output = binding.echoUnsignedInt(uiInput);
  +            verify("echoUnsignedInt", uiInput, output);
  +        } catch (Exception e) {
  +            if (!testMode) {
  +                verify("echoUnsignedInt", uiInput, e);
  +            } else {
  +                throw e;
  +            }
  +        }
  +
  +        // Test xsd:unsignedShort
  +        UnsignedShort usInput = new UnsignedShort(102);
  +        try {
  +            output = binding.echoUnsignedShort(usInput);
  +            verify("echoUnsignedShort", usInput, output);
  +        } catch (Exception e) {
  +            if (!testMode) {
  +                verify("echoUnsignedShort", usInput, e);
  +            } else {
  +                throw e;
  +            }
  +        }
  +
  +        // Test xsd:unsignedByte
  +        UnsignedByte ubInput = new UnsignedByte(103);
  +        try {
  +            output = binding.echoUnsignedByte(ubInput);
  +            verify("echoUnsignedByte", ubInput, output);
  +        } catch (Exception e) {
  +            if (!testMode) {
  +                verify("echoUnsignedByte", ubInput, e);
  +            } else {
  +                throw e;
  +            }
  +        }
  +
       }
   
       /**
  @@ -396,7 +453,7 @@
           }
   
           {
  -            Hex input = new Hex("3344");
  +            HexBinary input = new HexBinary("3344");
               try {
                   output = binding.echoHexBinary(input.getBytes());
                   verify("echoHexBinary", input, output);
  @@ -502,7 +559,7 @@
                   StringHolder outputString = new StringHolder();
                   IntHolder outputInteger = new IntHolder();
                   FloatHolder outputFloat = new FloatHolder();
  -                binding.echoStructAsSimpleTypes(input, outputString, 
  +                binding.echoStructAsSimpleTypes(input, outputString,
                                                    outputInteger, outputFloat);
                   output = new SOAPStruct();
                   ((SOAPStruct)output).setVarInt(outputInteger.value);
  
  
  
  1.5       +6 -6      xml-axis/java/test/wsdl/interop3/groupE/client/InteropTestListServiceTestClient.java
  
  Index: InteropTestListServiceTestClient.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/interop3/groupE/client/InteropTestListServiceTestClient.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- InteropTestListServiceTestClient.java	20 Jun 2002 20:35:48 -0000	1.4
  +++ InteropTestListServiceTestClient.java	7 Aug 2002 21:02:10 -0000	1.5
  @@ -56,7 +56,7 @@
   package test.wsdl.interop3.groupE.client;
   
   import org.apache.axis.AxisFault;
  -import org.apache.axis.encoding.Hex;
  +import org.apache.axis.types.HexBinary;
   import org.apache.axis.encoding.ser.BeanSerializerFactory;
   import org.apache.axis.encoding.ser.BeanDeserializerFactory;
   import org.apache.axis.utils.JavaUtils;
  @@ -111,12 +111,12 @@
          if (obj1.equals(obj2)) return true;
   
          // For comparison purposes, get the array of bytes representing
  -       // the Hex object.
  -       if (obj1 instanceof Hex) {
  -           obj1 = ((Hex) obj1).getBytes();
  +        // the HexBinary object.
  +       if (obj1 instanceof HexBinary) {
  +           obj1 = ((HexBinary) obj1).getBytes();
          }
  -       if (obj2 instanceof Hex) {
  -           obj2 = ((Hex) obj2).getBytes();
  +       if (obj2 instanceof HexBinary) {
  +           obj2 = ((HexBinary) obj2).getBytes();
          }
   
          if (obj1 instanceof Date && obj2 instanceof Date)
  
  
  
  1.20      +4 -0      xml-axis/java/test/encoding/PackageTests.java
  
  Index: PackageTests.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/PackageTests.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- PackageTests.java	9 Jul 2002 15:17:31 -0000	1.19
  +++ PackageTests.java	7 Aug 2002 21:02:10 -0000	1.20
  @@ -39,6 +39,10 @@
           suite.addTestSuite(TestMultiRefIdentity.class);
           suite.addTestSuite(TestNormalizedString.class);
           suite.addTestSuite(TestToken.class);
  +        suite.addTestSuite(TestUnsignedLong.class);
  +        suite.addTestSuite(TestUnsignedInt.class);
  +        suite.addTestSuite(TestUnsignedShort.class);
  +        suite.addTestSuite(TestUnsignedByte.class);
           return suite;
       }
   }
  
  
  
  1.18      +77 -24    xml-axis/java/test/encoding/TestDeser2001.java
  
  Index: TestDeser2001.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/TestDeser2001.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- TestDeser2001.java	31 Jul 2002 20:47:01 -0000	1.17
  +++ TestDeser2001.java	7 Aug 2002 21:02:10 -0000	1.18
  @@ -2,9 +2,14 @@
   
   import org.apache.axis.Constants;
   
  -import org.apache.axis.encoding.Hex;
  -import org.apache.axis.encoding.NormalizedString;
  -import org.apache.axis.encoding.Token;
  +import org.apache.axis.types.HexBinary;
  +import org.apache.axis.types.NormalizedString;
  +import org.apache.axis.types.Token;
  +import org.apache.axis.types.UnsignedLong;
  +import org.apache.axis.types.UnsignedInt;
  +import org.apache.axis.types.UnsignedShort;
  +import org.apache.axis.types.UnsignedByte;
  +import org.apache.axis.types.Time;
   
   import java.util.ArrayList;
   import java.util.Calendar;
  @@ -14,7 +19,7 @@
   
   import javax.xml.namespace.QName;
   
  -/** 
  +/**
    * Test deserialization of SOAP responses
    */
   public class TestDeser2001 extends TestDeser {
  @@ -24,21 +29,20 @@
                       Constants.URI_2001_SCHEMA_XSD);
       }
   
  -    /** 
  +    /**
        * Test deserialization of Date responses
        */
       public void testMinDate() throws Exception {
           Calendar date = Calendar.getInstance();
           date.set(1999, 04, 31, 0, 0, 0);
           date.set(Calendar.MILLISECOND,0);
  -        //date.setTimeZone(TimeZone.getTimeZone("GMT"));
  -        deserialize("<result xsi:type=\"xsd:date\">" + 
  -                       "1999-05-31" + 
  +        deserialize("<result xsi:type=\"xsd:date\">" +
  +                       "1999-05-31" +
                        "</result>",
                        date.getTime());
       }
   
  -    /** 
  +    /**
        * Test deserialization of dateTime (Calendar) responses
        */
       public void testMinDateTime() throws Exception {
  @@ -46,8 +50,8 @@
           date.set(1999,04,31, 12, 01, 30);
           date.setTimeZone(TimeZone.getTimeZone("GMT"));
           date.set(Calendar.MILLISECOND,0);
  -        deserialize("<result xsi:type=\"xsd:dateTime\">" + 
  -                       "1999-05-31T12:01:30Z" + 
  +        deserialize("<result xsi:type=\"xsd:dateTime\">" +
  +                       "1999-05-31T12:01:30Z" +
                        "</result>",
                        date);
       }
  @@ -57,8 +61,8 @@
           date.set(1999,04,31,12,01,30);
           date.setTimeZone(TimeZone.getTimeZone("GMT"));
           date.set(Calendar.MILLISECOND,150);
  -        deserialize("<result xsi:type=\"xsd:dateTime\">" + 
  -                       "1999-05-31T12:01:30.150Z" + 
  +        deserialize("<result xsi:type=\"xsd:dateTime\">" +
  +                       "1999-05-31T12:01:30.150Z" +
                        "</result>",
                        date);
       }
  @@ -66,10 +70,9 @@
       public void testDateTZ() throws Exception {
           Calendar date = Calendar.getInstance();
           date.set(1999, 04, 31, 0, 0, 0);
  -        //date.setTimeZone(TimeZone.getTimeZone("GMT"));
           date.set(Calendar.MILLISECOND,0);
  -        deserialize("<result xsi:type=\"xsd:date\">" + 
  -                       "1999-05-31" + 
  +        deserialize("<result xsi:type=\"xsd:date\">" +
  +                       "1999-05-31" +
                        "</result>",
                        date.getTime());
       }
  @@ -78,12 +81,42 @@
           Calendar date = Calendar.getInstance();
           date.set(1999,04,31,12,01,30);
           date.set(Calendar.MILLISECOND,150);
  -        deserialize("<result xsi:type=\"xsd:dateTime\">" + 
  -                       "1999-05-31T12:01:30.150" + calcGMTOffset(date) + 
  +        deserialize("<result xsi:type=\"xsd:dateTime\">" +
  +                       "1999-05-31T12:01:30.150" + calcGMTOffset(date) +
                        "</result>",
                        date);
       }
   
  +    /**
  +     * Test the xsd:Time deserialization
  +     */ 
  +    public void testTimeZ() throws Exception {
  +        Calendar date = Calendar.getInstance();
  +        date.set(Calendar.HOUR_OF_DAY, 12);
  +        date.set(Calendar.MINUTE, 01);
  +        date.set(Calendar.SECOND, 30);
  +        date.set(Calendar.MILLISECOND,150);
  +        date.setTimeZone(TimeZone.getTimeZone("GMT"));
  +        Time time = new Time(date);
  +        deserialize("<result xsi:type=\"xsd:time\">" +
  +                       "12:01:30.150Z" +
  +                     "</result>",
  +                     time);
  +    }
  +    public void testTimeTZ() throws Exception {
  +        Calendar date = Calendar.getInstance();
  +        date.set(Calendar.HOUR_OF_DAY, 12);
  +        date.set(Calendar.MINUTE, 01);
  +        date.set(Calendar.SECOND, 30);
  +        date.set(Calendar.MILLISECOND,150);
  +        date.setTimeZone(TimeZone.getDefault());
  +        Time time = new Time(date);
  +        deserialize("<result xsi:type=\"xsd:time\">" +
  +                       "12:01:30.150" + calcGMTOffset(date) +
  +                     "</result>",
  +                     time);
  +    }
  +    
       private final int msecsInMinute = 60000;
       private final int msecsInHour = 60 * msecsInMinute;
   
  @@ -116,12 +149,12 @@
   
       public void testHex() throws Exception {
           deserialize("<result xsi:type=\"xsd:hexBinary\">50A9</result>",
  -                    new Hex("50A9"),true);
  +                    new HexBinary("50A9"),true);
       }
   
       public void testHexNull() throws Exception {
           deserialize("<result xsi:type=\"xsd:hexBinary\"></result>",
  -                    new Hex(""),true);
  +                    new HexBinary(""),true);
       }
   
       public void testToken() throws Exception {
  @@ -134,6 +167,26 @@
                       new NormalizedString("abcdefg"),true);
       }
   
  +    public void testUnsignedLong() throws Exception {
  +        deserialize("<result xsi:type=\"xsd:unsignedLong\">100</result>",
  +                    new UnsignedLong(100),true);
  +    }
  +
  +    public void testUnsignedInt() throws Exception {
  +        deserialize("<result xsi:type=\"xsd:unsignedInt\">101</result>",
  +                    new UnsignedInt(101),true);
  +    }
  +
  +    public void testUnsignedShort() throws Exception {
  +        deserialize("<result xsi:type=\"xsd:unsignedShort\">102</result>",
  +                    new UnsignedShort(102),true);
  +    }
  +
  +    public void testUnsignedByte() throws Exception {
  +        deserialize("<result xsi:type=\"xsd:unsignedByte\">103</result>",
  +                    new UnsignedByte(103),true);
  +    }
  +
       public void testQName() throws Exception {
           deserialize("<result xsi:type=\"xsd:QName\" xmlns:qns=\"namespace\">qns:localPart</result>", new QName("namespace", "localPart"), true);
       }
  @@ -146,7 +199,7 @@
                       "xmlns:xmlsoap=\"http://xml.apache.org/xml-soap\"> " +
                         "<item>" +
                          "<key xsi:nil=\"true\"/>" +
  -                       "<value xsi:type=\"xsd:boolean\">false</value>" + 
  +                       "<value xsi:type=\"xsd:boolean\">false</value>" +
                         "</item><item>" +
                          "<key xsi:type=\"string\">hi</key>" +
                          "<value xsi:nil=\"true\"/>" +
  @@ -168,7 +221,7 @@
                       "</result>",
                       list, true);
       }
  -    
  +
       public void testArrayWithNilString() throws Exception {
           ArrayList list = new ArrayList(4);
           list.add("abc");
  @@ -182,10 +235,10 @@
                       "</result>",
                       list, true);
       }
  -    
  +
       public void testNilSOAPBoolean() throws Exception {
           deserialize("<result xsi:type=\"soapenc:boolean\" xsi:nil=\"true\" />",
                       null);
       }
  -    
  +
   }
  
  
  
  1.2       +1 -1      xml-axis/java/test/encoding/TestNormalizedString.java
  
  Index: TestNormalizedString.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/TestNormalizedString.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestNormalizedString.java	9 Jul 2002 15:17:31 -0000	1.1
  +++ TestNormalizedString.java	7 Aug 2002 21:02:10 -0000	1.2
  @@ -57,7 +57,7 @@
   
   import junit.framework.TestCase;
   
  -import org.apache.axis.encoding.NormalizedString;
  +import org.apache.axis.types.NormalizedString;
   
   /**
    * Test validation of encoding.NormalizedString
  
  
  
  1.2       +1 -1      xml-axis/java/test/encoding/TestToken.java
  
  Index: TestToken.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/TestToken.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestToken.java	9 Jul 2002 15:17:31 -0000	1.1
  +++ TestToken.java	7 Aug 2002 21:02:10 -0000	1.2
  @@ -56,7 +56,7 @@
   package test.encoding;
   
   import junit.framework.TestCase;
  -import org.apache.axis.encoding.Token;
  +import org.apache.axis.types.Token;
   
   /**
    * Test validation of encoding.Token
  
  
  
  1.1                  xml-axis/java/test/encoding/TestUnsignedByte.java
  
  Index: TestUnsignedByte.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package test.encoding;
  
  import junit.framework.TestCase;
  
  import org.apache.axis.types.UnsignedByte;
  
  /**
   * Test validation of types.UnsignedByte
   */
  public class TestUnsignedByte extends TestCase {
  
      public TestUnsignedByte(String name) {
          super(name);
      }
  
      /**
       * Run a failure test.  value should be invalid.
       */
      private void runFailTest(long value) throws Exception {
          UnsignedByte oUnsignedByte = null;
          try {
              oUnsignedByte = new UnsignedByte(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          // object is not iNstantiated on bad data value
          assertNull("validation restriction failed [" +
                  String.valueOf(value) + "]. did not restrict bad value.", oUnsignedByte);
      }
  
      /**
       * Run a successful test.  value should be valid.
       */
      private void runPassTest(long value) throws Exception {
          UnsignedByte oUnsignedByte = null;
          try {
              oUnsignedByte = new UnsignedByte(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          assertEquals("unsigned byte not equal" +
                  String.valueOf(value), oUnsignedByte.toString(), String.valueOf(value));
      }
  
      /**
       * Test that a positive value succeeeds
       */
      public void testPositiveValue() throws Exception {
          runPassTest(100);
      }
  
      /**
       * Test that a negative number fails
       */
      public void testNegativeValue() throws Exception {
          runFailTest(-100);
      }
  
  
      /**
      * Test that a number at MaxInclusive succeeds
      */
      public void testMaxInclusive() throws Exception {
        runPassTest(255);
      }
  
      /**
      * Test that a number over MaxInclusive fails
      */
      public void testMaxOver() throws Exception {
        runFailTest(256);
      }
  
      /**
      * Test that a number at MinInclusive succeeds
      */
      public void testMinExclusive() throws Exception {
         runPassTest(0L);
      }
  }
  
  
  
  1.1                  xml-axis/java/test/encoding/TestUnsignedInt.java
  
  Index: TestUnsignedInt.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package test.encoding;
  
  import junit.framework.TestCase;
  
  import org.apache.axis.types.UnsignedInt;
  
  /**
   * Test validation of types.UnsignedInt
   */
  public class TestUnsignedInt extends TestCase {
  
      public TestUnsignedInt(String name) {
          super(name);
      }
  
      /**
       * Run a failure test.  value should be invalid.
       */
      private void runFailTest(long value) throws Exception {
          UnsignedInt oUnsignedInt = null;
          try {
              oUnsignedInt = new UnsignedInt(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          // object is not iNstantiated on bad data value
          assertNull("validation restriction failed [" +
                  String.valueOf(value) + "]. did not restrict bad value.", oUnsignedInt);
      }
  
      /**
       * Run a successful test.  value should be valid.
       */
      private void runPassTest(long value) throws Exception {
          UnsignedInt oUnsignedInt = null;
          try {
              oUnsignedInt = new UnsignedInt(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          assertEquals("unsigned int not equal" +
                  String.valueOf(value), oUnsignedInt.toString(), String.valueOf(value));
      }
  
      /**
       * Test that a positive value succeeeds
       */
      public void testPositiveValue() throws Exception {
          runPassTest(100);
      }
  
      /**
       * Test that a negative number fails
       */
      public void testNegativeValue() throws Exception {
          runFailTest(-100);
      }
  
  
      /**
      * Test that a number at MaxInclusive succeeds
      */
      public void testMaxInclusive() throws Exception {
         runPassTest(4294967295L);
      }
  
      /**
      * Test that a number over MaxInclusive fails
      */
      public void testMaxOver() throws Exception {
         runFailTest(4294967296L);
      }
  
      /**
      * Test that a number at MinInclusive succeeds
      */
      public void testMinExclusive() throws Exception {
         runPassTest(0L);
      }
  
  }
  
  
  
  1.1                  xml-axis/java/test/encoding/TestUnsignedLong.java
  
  Index: TestUnsignedLong.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package test.encoding;
  
  import junit.framework.TestCase;
  
  import org.apache.axis.types.UnsignedLong;
  
  /**
   * Test validation of types.UnsignedLong
   */
  public class TestUnsignedLong extends TestCase {
  
      public TestUnsignedLong(String name) {
          super(name);
      }
  
      /**
       * Run a failure test.  value should be invalid.
       */
      private void runFailTest(double value) throws Exception {
          UnsignedLong oUnsignedLong = null;
          try {
              oUnsignedLong = new UnsignedLong(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          // object is not iNstantiated on bad data value
          assertNull("validation restriction failed [" +
                  String.valueOf(value) + "]. did not restrict bad value.", oUnsignedLong);
      }
  
      /**
       * Run a successful test.  value should be valid.
       */
      private void runPassTest(double value) throws Exception {
          UnsignedLong oUnsignedLong = null;
          try {
              oUnsignedLong = new UnsignedLong(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          String stRetval = String.valueOf(value);  // contains .0
          stRetval = stRetval.substring(0,stRetval.lastIndexOf('.'));
          assertEquals("unsigned long not equal" +
                  String.valueOf(value), oUnsignedLong.toString(),stRetval);
      }
  
      /**
       * Test that a positive value succeeeds
       */
      public void testPositiveValue() throws Exception {
          runPassTest(100);
      }
  
      /**
       * Test that a negative number fails
       */
      public void testNegativeValue() throws Exception {
          runFailTest(-100);
      }
  
  
      /**
      * Test that a number over MaxInclusive fails
      */
      public void testMaxInclusive() throws Exception {
        runPassTest(18446744073709551615D);
      }
  
      /**
      * Test that a number at MaxInclusive succeeds
      */
  //    public void testMaxOver() throws Exception {
        // actual MaxOver should be 18446744073709551615D
        // but we are running into a precision issue
  //      runFailTest(18446744073709551616D);
  //    }
  
      /**
      * Test that a number at MinInclusive succeeds
      */
      public void testMinExclusive() throws Exception {
         runPassTest(0L);
      }
  
  
  }
  
  
  
  1.1                  xml-axis/java/test/encoding/TestUnsignedShort.java
  
  Index: TestUnsignedShort.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package test.encoding;
  
  import junit.framework.TestCase;
  
  import org.apache.axis.types.UnsignedShort;
  
  /**
   * Test validation of types.UnsignedShort
   */
  public class TestUnsignedShort extends TestCase {
  
      public TestUnsignedShort(String name) {
          super(name);
      }
  
      /**
       * Run a failure test.  value should be invalid.
       */
      private void runFailTest(long value) throws Exception {
          UnsignedShort oUnsignedShort = null;
          try {
              oUnsignedShort = new UnsignedShort(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          // object is not iNstantiated on bad data value
          assertNull("validation restriction failed [" +
                  String.valueOf(value) + "]. did not restrict bad value.", oUnsignedShort);
      }
  
      /**
       * Run a successful test.  value should be valid.
       */
      private void runPassTest(long value) throws Exception {
          UnsignedShort oUnsignedShort = null;
          try {
              oUnsignedShort = new UnsignedShort(value);
          }
          catch (Exception e) { // catch the validation exception
          }
          assertEquals("unsigned short not equal" +
                  String.valueOf(value), oUnsignedShort.toString(), String.valueOf(value));
      }
  
      /**
       * Test that a positive value succeeeds
       */
      public void testPositiveValue() throws Exception {
          runPassTest(100);
      }
  
      /**
       * Test that a negative number fails
       */
      public void testNegativeValue() throws Exception {
          runFailTest(-100);
      }
  
  
      /**
      * Test that a number at MaxInclusive succeeds
      */
      public void testMaxInclusive() throws Exception {
        runPassTest(65535);
      }
  
      /**
      * Test that a number over MaxInclusive fails
      */
      public void testMaxOver() throws Exception {
        runFailTest(65536);
      }
  
      /**
      * Test that a number at MinInclusive succeeds
      */
      public void testMinExclusive() throws Exception {
         runPassTest(0L);
      }
  }
  
  
  
  1.45      +8 -3      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.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- Utils.java	2 Aug 2002 12:55:34 -0000	1.44
  +++ Utils.java	7 Aug 2002 21:02:11 -0000	1.45
  @@ -186,7 +186,12 @@
           else if (typeValue.equals("javax.xml.namespace.QName")) {
               return "javax.xml.rpc.holders.QNameHolder";
           }
  -
  +        // Check for Axis specific types and return their holders
  +        else if (typeValue.startsWith("org.apache.axis.types.")) {
  +            int i = typeValue.lastIndexOf('.');
  +            String t = typeValue.substring(i+1);
  +            return "org.apache.axis.holders." + t + "Holder";
  +        }
           // For everything else add "holders" package and append
           // holder to the class name.
           else {
  @@ -474,8 +479,8 @@
           } else if (type != null && 
                      type.getName().equals("byte[]") &&
                      type.getQName().getLocalPart().equals("hexBinary")) {
  -            // Need to wrap byte[] in special Hex object to get the correct serialization
  -            return "new org.apache.axis.encoding.Hex(" + var + ")";
  +            // Need to wrap byte[] in special HexBinary object to get the correct serialization
  +            return "new org.apache.axis.types.HexBinary(" + var + ")";
           } else {
               return var;
           }