scheu 02/02/08 15:18:54
Modified: java/samples/echo TestClient.java
java/src/org/apache/axis/encoding
DefaultTypeMappingImpl.java Hex.java
java/src/org/apache/axis/encoding/ser HexDeserializer.java
HexDeserializerFactory.java HexSerializer.java
HexSerializerFactory.java
java/src/org/apache/axis/wsdl/toJava Emitter.java
JavaWriterFactory.java NoopWriter.java
SymbolTable.java Type.java Utils.java
WriterFactory.java
java/test/encoding TestDeser2001.java
Added: java/src/org/apache/axis/wsdl/toJava BaseType.java
BaseTypeMapping.java
Removed: java/src/org/apache/axis/wsdl/toJava BaseJavaType.java
Log:
Following improvments are made:
- Changed WSDL2Java to use the TypeMapping information.
- Changed BaseJavaType to BaseType
- Enhanced Hex Serializer/Deserializer to support byte[]
- Minor changes to test cases.
Revision Changes Path
1.50 +13 -2 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.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- TestClient.java 8 Feb 2002 22:14:10 -0000 1.49
+++ TestClient.java 8 Feb 2002 23:18:53 -0000 1.50
@@ -64,6 +64,7 @@
import org.apache.axis.encoding.ser.ArrayDeserializerFactory;
import org.apache.axis.encoding.TypeMappingRegistry;
import org.apache.axis.encoding.TypeMapping;
+import org.apache.axis.encoding.Hex;
import org.apache.axis.Constants;
import org.apache.axis.utils.JavaUtils;
import org.apache.axis.utils.Options;
@@ -103,6 +104,16 @@
protected boolean equals(Object obj1, Object obj2) {
if (obj1 == null || obj2 == null) return (obj1 == obj2);
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();
+ }
+ if (obj2 instanceof Hex) {
+ obj2 = ((Hex) obj2).getBytes();
+ }
+
if (obj1 instanceof Date && obj2 instanceof Date)
if (Math.abs(((Date)obj1).getTime()-((Date)obj2).getTime())<1000)
return true;
@@ -121,7 +132,7 @@
}
return true;
}
-
+
if (obj1 instanceof List)
obj1 = JavaUtils.convert(obj1, Object[].class);
if (obj2 instanceof List)
@@ -247,7 +258,7 @@
new SOAPStruct(3, "three", 3.3F)});
test("Void ", null);
test("Base64 ", "Base64".getBytes());
- test("HexBinary ", new org.apache.axis.encoding.Hex("3344"));
+ test("HexBinary ", new Hex("3344"));
test("Date ", new Date());
test("Decimal ", new BigDecimal("3.14159"));
test("Boolean ", Boolean.TRUE);
1.8 +25 -7
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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DefaultTypeMappingImpl.java 1 Feb 2002 22:08:25 -0000 1.7
+++ DefaultTypeMappingImpl.java 8 Feb 2002 23:18:53 -0000 1.8
@@ -131,6 +131,9 @@
// ser factory for the last one registered will be chosen. Likewise
// if two javaTypes for XSD_DATE are registered, the deserializer
// factory for the last one registered will be chosen.
+ // Corollary: Please be very careful with the order. The
+ // runtime, Java2WSDL and WSDL2Java emitters all
+ // use this code to get type mapping information.
// 2) Even if the SOAP 1.1 format is used over the wire, an
// attempt is made to receive SOAP 1.2 format from the wire.
// This is the reason why the soap encoded primitives are
@@ -161,6 +164,18 @@
myRegister(Constants.SOAP_BYTE, java.lang.Byte.class,
null, null, false, true);
+ // Hex binary data needs to use the hex binary serializer/deserializer
+ myRegister(Constants.XSD_HEXBIN, Hex.class,
+ new HexSerializerFactory(
+ Hex.class, Constants.XSD_HEXBIN),
+ new HexDeserializerFactory(
+ Hex.class, Constants.XSD_HEXBIN),true);
+ myRegister(Constants.XSD_HEXBIN, byte[].class,
+ new HexSerializerFactory(
+ byte[].class, Constants.XSD_HEXBIN),
+ new HexDeserializerFactory(
+ byte[].class, Constants.XSD_HEXBIN),true);
+
// SOAP 1.1
// byte[] -ser-> XSD_BASE64
// Byte[] -ser-> array of Byte
@@ -183,8 +198,6 @@
// If SOAP 1.1 over the wire, map wrapper classes to XSD primitives.
- // Even though the java class is an object, since these are all
- // xsd primitives, treat them as a primitive.
myRegister(Constants.XSD_STRING, java.lang.String.class,
null, null, true);
myRegister(Constants.XSD_BOOLEAN, java.lang.Boolean.class,
@@ -222,6 +235,8 @@
myRegister(Constants.XSD_BYTE, byte.class,
null, null,true);
+
+ // Map QNAME to the jax rpc QName class
myRegister(Constants.XSD_QNAME,
javax.xml.rpc.namespace.QName.class,
new BeanSerializerFactory(javax.xml.rpc.namespace.QName.class,
@@ -229,6 +244,8 @@
new BeanDeserializerFactory(javax.xml.rpc.namespace.QName.class,
Constants.XSD_QNAME),
true);
+
+ // The closest match for anytype is Object
myRegister(Constants.XSD_ANYTYPE, java.lang.Object.class,
null, null, false);
@@ -254,9 +271,6 @@
new DateDeserializerFactory(java.util.Date.class,
Constants.XSD_DATE),
true);
- myRegister(Constants.XSD_HEXBIN, Hex.class,
- new HexSerializerFactory(),
- new HexDeserializerFactory(),true);
// Use the Map Serialization for Hashtables, Map and HashMap
// The SOAP_MAP will be deserialized into a HashMap
@@ -290,17 +304,21 @@
false);
// All array objects automatically get associated with the SOAP_ARRAY.
- //There is no way to do this with a hash table,
+ // There is no way to do this with a hash table,
// so it is done directly in getTypeQName.
// Internally the runtime uses ArrayList objects to hold arrays...
// which is the reason that ArrayList is associated with SOAP_ARRAY.
// In addition, handle all objects that implement the List interface
- //as a SOAP_ARRAY
+ // as a SOAP_ARRAY
myRegister(Constants.SOAP_ARRAY, java.util.List.class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory(),
false);
myRegister(Constants.SOAP_ARRAY, java.util.ArrayList.class,
+ new ArraySerializerFactory(),
+ new ArrayDeserializerFactory(),
+ false);
+ myRegister(Constants.SOAP_ARRAY, Object[].class,
new ArraySerializerFactory(),
new ArrayDeserializerFactory(),
false);
1.7 +4 -0 xml-axis/java/src/org/apache/axis/encoding/Hex.java
Index: Hex.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/Hex.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Hex.java 6 Nov 2001 21:52:28 -0000 1.6
+++ Hex.java 8 Feb 2002 23:18:53 -0000 1.7
@@ -74,6 +74,10 @@
m_value = decode(string);
}
+ public Hex(byte[] bytes){
+ m_value = bytes;
+ }
+
public byte[] getBytes(){
return m_value;
}
1.2 +23 -1
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HexDeserializer.java 26 Jan 2002 02:40:34 -0000 1.1
+++ HexDeserializer.java 8 Feb 2002 23:18:53 -0000 1.2
@@ -78,13 +78,28 @@
* @see <a href="http://www.w3.org/TR/xmlschema-2/#hexBinary">XML Schema 3.2.16</a>
*/
public class HexDeserializer extends DeserializerImpl implements Deserializer {
+
+ public QName xmlType;
+ public Class javaType;
+
+ StringBuffer buf = null;
+
+ public HexDeserializer(Class javaType, QName xmlType) {
+ this.xmlType = xmlType;
+ this.javaType = javaType;
+ }
/**
* Handle any characters found in the data
*/
public void characters(char [] chars, int start, int end)
throws SAXException
{
- value = new Hex(new String(chars, start, end));
+ // Characters are collected in a buffer because
+ // SAX may chunk the data.
+ if (buf == null) {
+ buf = new StringBuffer();
+ }
+ buf.append(chars, start, end);
}
/**
@@ -94,6 +109,13 @@
DeserializationContext context)
throws SAXException
{
+ if (buf != null) {
+ if (javaType == byte[].class) {
+ value = Hex.decode(buf.toString());
+ } else {
+ value = new Hex(buf.toString());
+ }
+ }
super.onEndElement(namespace,localName, context);
if (value == null) value = new Hex("");
}
1.2 +2 -2
xml-axis/java/src/org/apache/axis/encoding/ser/HexDeserializerFactory.java
Index: HexDeserializerFactory.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/HexDeserializerFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HexDeserializerFactory.java 26 Jan 2002 02:40:34 -0000 1.1
+++ HexDeserializerFactory.java 8 Feb 2002 23:18:53 -0000 1.2
@@ -74,7 +74,7 @@
* @author Rich Scheuerle <[EMAIL PROTECTED]>
*/
public class HexDeserializerFactory extends BaseDeserializerFactory {
- public HexDeserializerFactory() {
- super(HexDeserializer.class, false); // Can't share deserializers
+ public HexDeserializerFactory(Class javaType, QName xmlType) {
+ super(HexDeserializer.class, false, xmlType, javaType); // Can't share
deserializers
}
}
1.3 +14 -3
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.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- HexSerializer.java 2 Feb 2002 18:06:18 -0000 1.2
+++ HexSerializer.java 8 Feb 2002 23:18:53 -0000 1.3
@@ -73,6 +73,7 @@
import org.apache.axis.encoding.Hex;
import org.w3c.dom.Element;
import org.w3c.dom.Document;
+import org.apache.axis.encoding.Base64;
/**
* Serializer for hexBinary.
*
@@ -82,6 +83,13 @@
*/
public class HexSerializer implements Serializer {
+ public QName xmlType;
+ public Class javaType;
+ public HexSerializer(Class javaType, QName xmlType) {
+ this.xmlType = xmlType;
+ this.javaType = javaType;
+ }
+
/**
* Serialize a Hex quantity.
*/
@@ -89,10 +97,13 @@
Object value, SerializationContext context)
throws IOException
{
- Hex data = (Hex) value;
-
context.startElement(name, attributes);
- context.writeString(data.toString());
+ if (javaType == Hex.class) {
+ context.writeString(((Hex) value).toString());
+ } else {
+ context.writeString(Hex.encode((byte[]) value));
+ }
+
context.endElement();
}
1.2 +2 -2
xml-axis/java/src/org/apache/axis/encoding/ser/HexSerializerFactory.java
Index: HexSerializerFactory.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/HexSerializerFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HexSerializerFactory.java 26 Jan 2002 02:40:34 -0000 1.1
+++ HexSerializerFactory.java 8 Feb 2002 23:18:53 -0000 1.2
@@ -74,7 +74,7 @@
* @author Rich Scheuerle <[EMAIL PROTECTED]>
*/
public class HexSerializerFactory extends BaseSerializerFactory {
- public HexSerializerFactory() {
- super(HexSerializer.class, true); // Share HexSerializer instance
+ public HexSerializerFactory(Class javaType, QName xmlType) {
+ super(HexSerializer.class, true, xmlType, javaType); // Share
HexSerializer instance
}
}
1.17 +33 -1 xml-axis/java/src/org/apache/axis/wsdl/toJava/Emitter.java
Index: Emitter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Emitter.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- Emitter.java 6 Feb 2002 21:24:29 -0000 1.16
+++ Emitter.java 8 Feb 2002 23:18:53 -0000 1.17
@@ -84,6 +84,10 @@
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Vector;
+import javax.wsdl.QName;
+
+import org.apache.axis.encoding.TypeMapping;
+import org.apache.axis.encoding.DefaultSOAP12TypeMappingImpl;
/**
* This class produces java files for stubs, skeletons, and types from a
@@ -162,7 +166,10 @@
}
}
- symbolTable = new SymbolTable(namespaces, bGenerateImports, bDebug);
+ symbolTable = new SymbolTable(namespaces,
+ writerFactory.getBaseTypeMapping(),
+ bGenerateImports,
+ bDebug);
symbolTable.add(context, def, doc);
writerFactory.writerPass(def, symbolTable);
if (bDebug) {
@@ -593,5 +600,30 @@
}
public void setEmitter(Emitter emitter) {}
+
+ /**
+ * Get TypeMapping to use for translating
+ * QNames to java base types
+ */
+ BaseTypeMapping btm = null;
+ public BaseTypeMapping getBaseTypeMapping() {
+ if (btm == null) {
+ btm = new BaseTypeMapping() {
+ TypeMapping defaultTM =
DefaultSOAP12TypeMappingImpl.create();
+ public String getBaseName(QName qNameIn) {
+ javax.xml.rpc.namespace.QName qName =
+ new javax.xml.rpc.namespace.QName(
+ qNameIn.getNamespaceURI(),
+ qNameIn.getLocalPart());
+ Class cls = defaultTM.getClassForQName(qName);
+ if (cls == null)
+ return null;
+ else
+ return JavaUtils.getTextClassName(cls.getName());
+ }
+ };
+ }
+ return btm;
+ }
}
}
1.13 +27 -0
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java
Index: JavaWriterFactory.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- JavaWriterFactory.java 7 Feb 2002 14:15:06 -0000 1.12
+++ JavaWriterFactory.java 8 Feb 2002 23:18:53 -0000 1.13
@@ -70,6 +70,8 @@
import javax.wsdl.Service;
import org.apache.axis.utils.JavaUtils;
+import org.apache.axis.encoding.TypeMapping;
+import org.apache.axis.encoding.DefaultSOAP12TypeMappingImpl;
/**
* This is Wsdl2java's implementation of the WriterFactory.
@@ -513,5 +515,30 @@
}
}
} // determineIfHoldersNeeded
+
+ /**
+ * Get TypeMapping to use for translating
+ * QNames to java base types
+ */
+ BaseTypeMapping btm = null;
+ public BaseTypeMapping getBaseTypeMapping() {
+ if (btm == null) {
+ btm = new BaseTypeMapping() {
+ TypeMapping defaultTM = DefaultSOAP12TypeMappingImpl.create();
+ public String getBaseName(QName qNameIn) {
+ javax.xml.rpc.namespace.QName qName =
+ new javax.xml.rpc.namespace.QName(
+ qNameIn.getNamespaceURI(),
+ qNameIn.getLocalPart());
+ Class cls = defaultTM.getClassForQName(qName);
+ if (cls == null)
+ return null;
+ else
+ return JavaUtils.getTextClassName(cls.getName());
+ }
+ };
+ }
+ return btm;
+ }
} // class JavaWriterFactory
1.2 +1 -0 xml-axis/java/src/org/apache/axis/wsdl/toJava/NoopWriter.java
Index: NoopWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/NoopWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- NoopWriter.java 11 Dec 2001 15:08:47 -0000 1.1
+++ NoopWriter.java 8 Feb 2002 23:18:54 -0000 1.2
@@ -68,4 +68,5 @@
*/
public void write() throws IOException {
} // write
+
} // class NoopWriter
1.28 +19 -15 xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java
Index: SymbolTable.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- SymbolTable.java 7 Feb 2002 15:36:27 -0000 1.27
+++ SymbolTable.java 8 Feb 2002 23:18:54 -0000 1.28
@@ -136,11 +136,15 @@
private boolean debug = false;
+ private BaseTypeMapping btm = null;
/**
* Construct a symbol table with the given Namespaces.
*/
- public SymbolTable(Namespaces namespaces, boolean addImports, boolean debug) {
+ public SymbolTable(Namespaces namespaces,
+ BaseTypeMapping btm,
+ boolean addImports, boolean debug) {
this.namespaces = namespaces;
+ this.btm = btm;
this.addImports = addImports;
this.debug = debug;
} // ctor
@@ -605,9 +609,9 @@
TypeEntry refType = getTypeEntry(refQName, false);
if (refType == null) {
// Not defined yet, add one
- String baseJavaName = Utils.getBaseJavaName(refQName);
- if (baseJavaName != null)
- refType = new BaseJavaType(refQName);
+ String baseName = btm.getBaseName(refQName);
+ if (baseName != null)
+ refType = new BaseType(refQName);
else
refType = new UndefinedType(refQName);
symbolTablePut(refType);
@@ -633,9 +637,9 @@
else {
// Create a TypeEntry representing this type/element
- String baseJavaName = Utils.getBaseJavaName(qName);
- if (baseJavaName != null) {
- symbolTablePut(new BaseJavaType(qName));
+ String baseName = btm.getBaseName(qName);
+ if (baseName != null) {
+ symbolTablePut(new BaseType(qName));
}
else if (!isElement) {
symbolTablePut(new DefinedType(qName, node));
@@ -674,9 +678,9 @@
TypeEntry collEl = getTypeEntry(typeAttr, false);
if (collEl == null) {
// Collection Element Type not defined yet, add one.
- String baseJavaName = Utils.getBaseJavaName(typeAttr);
- if (baseJavaName != null) {
- collEl = new BaseJavaType(typeAttr);
+ String baseName = btm.getBaseName(typeAttr);
+ if (baseName != null) {
+ collEl = new BaseType(typeAttr);
} else {
collEl = new UndefinedType(typeAttr);
}
@@ -684,10 +688,10 @@
}
symbolTablePut(new CollectionType(qName, collEl, node, "[]"));
} else {
- // Add a BaseJavaType or Undefined Type/Element
- String baseJavaName = Utils.getBaseJavaName(qName);
- if (baseJavaName != null)
- symbolTablePut(new BaseJavaType(qName));
+ // Add a BaseType or Undefined Type/Element
+ String baseName = btm.getBaseName(qName);
+ if (baseName != null)
+ symbolTablePut(new BaseType(qName));
else if (forElement.value == false)
symbolTablePut(new UndefinedType(qName));
else
@@ -716,7 +720,7 @@
}
// The QName may represent a base java name, so check this first
- String fullJavaName = Utils.getBaseJavaName(qName);
+ String fullJavaName = btm.getBaseName(qName);
if (fullJavaName != null)
return fullJavaName;
1.4 +2 -2 xml-axis/java/src/org/apache/axis/wsdl/toJava/Type.java
Index: Type.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Type.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Type.java 14 Dec 2001 20:01:16 -0000 1.3
+++ Type.java 8 Feb 2002 23:18:54 -0000 1.4
@@ -67,7 +67,7 @@
public abstract class Type extends TypeEntry {
/**
- * Create a Type object for an xml construct name that represents a base java
type
+ * Create a Type object for an xml construct name that represents a base type
*/
protected Type(QName pqName) {
super(pqName);
@@ -82,7 +82,7 @@
}
/**
- * Create a Type object for an xml construct that is not a base java type
+ * Create a Type object for an xml construct that is not a base type
*/
protected Type(QName pqName, Node pNode) {
super(pqName, pNode);
1.13 +2 -0 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Utils.java 1 Feb 2002 04:38:18 -0000 1.12
+++ Utils.java 8 Feb 2002 23:18:54 -0000 1.13
@@ -106,6 +106,7 @@
* ----------------------------------------------------------
* @param QName
*/
+ /*
public static String getBaseJavaName(QName qName) {
String localName = qName.getLocalPart();
if (Constants.isSchemaXSD(qName.getNamespaceURI())) {
@@ -177,6 +178,7 @@
}
return null;
}
+ */
/**
* getNillableQName returns the QName to use if the nillable=true
1.3 +6 -0 xml-axis/java/src/org/apache/axis/wsdl/toJava/WriterFactory.java
Index: WriterFactory.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/WriterFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WriterFactory.java 13 Dec 2001 17:33:17 -0000 1.2
+++ WriterFactory.java 8 Feb 2002 23:18:54 -0000 1.3
@@ -116,4 +116,10 @@
* Provide the Emitter to the factory.
*/
public void setEmitter(Emitter emitter);
+
+ /**
+ * Get TypeMapping to use for translating
+ * QNames to java base types
+ */
+ public BaseTypeMapping getBaseTypeMapping();
}
1.1 xml-axis/java/src/org/apache/axis/wsdl/toJava/BaseType.java
Index: BaseType.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 [EMAIL PROTECTED]
*
* 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.wsdl.toJava;
import org.w3c.dom.Node;
import javax.wsdl.QName;
/**
* This Type is for a QName represents a Base Type (i.e. xsd:string represents a
java.lang.String)
*/
public class BaseType extends Type {
public BaseType(QName pqName) {
super(pqName);
}
};
1.1
xml-axis/java/src/org/apache/axis/wsdl/toJava/BaseTypeMapping.java
Index: BaseTypeMapping.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 [EMAIL PROTECTED]
*
* 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.wsdl.toJava;
import org.w3c.dom.Node;
import javax.wsdl.QName;
/**
* Get the base language name for a qname
*/
public abstract class BaseTypeMapping {
/**
* If the qname is registered in the target language,
* return the name of the registered type.
* @param QName representing a type
* @return name of the registered type or null if not registered.
*/
public abstract String getBaseName(QName qName);
};
1.8 +2 -2 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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestDeser2001.java 18 Nov 2001 19:21:39 -0000 1.7
+++ TestDeser2001.java 8 Feb 2002 23:18:54 -0000 1.8
@@ -65,12 +65,12 @@
public void testHex() throws Exception {
deserialize("<result xsi:type=\"xsd:hexBinary\">50A9</result>",
- new Hex("50A9"));
+ new Hex("50A9"),true);
}
public void testHexNull() throws Exception {
deserialize("<result xsi:type=\"xsd:hexBinary\"></result>",
- new Hex(""));
+ new Hex(""),true);
}
public void testMapWithNils() throws Exception {