Encoding Module
Requirements
- Lay out the Deserializer and Serializer interfaces and provide at lest one implementation.
- Code generation for the type Deserializers (and Serializer) that are based on pull parser
- MTOM supported
- DOC literal and soap encoding support
- Define the Type Mapping and implement it.
Wish List
Sub Components
- Deserializer
- Serializer
- Type Mapping
Deserializer
public interface Deserializer {
public Object deserialize(QName xmlName,XMLPullParser parser);
public int deserializeInt(XMLPullParser parser);
public double deserializeDouble(XMLPullParser parser);
public long deserializeLong(XMLPullParser parser);
public float deserializeFloat(XMLPullParser parser);
public boolean deserializeBoolean(XMLPullParser parser);
public byte deserializeByte(XMLPullParser parser);
public char deserializeChar(XMLPullParser parser);
public short deserializeShort(XMLPullParser parser);
}
Serialization
package org.apache.axis.encoding;
import java.io.IOException;
import org.apache.xml.utils.QName;
/**
* I consider this to be a interface as the Axis may use differant serializers and deserializers
* that works on DOM/SAX/StAx ..so it can have different timplementatoins behind this.
* StAx(pull)->SAX->DOM :)
*/
public interface Serializer {
public void serialize(Object object,QName xmlType,QName elementName)throws IOException;
//Should we have overridden tyes for the simple types ??
//I am feel like so
public void serialize(int in,QName elementName)throws IOException;
public void serialize(double in,QName elementName)throws IOException;
public void serialize(float in,QName elementName)throws IOException;
public void serialize(byte in,QName elementName)throws IOException;
public void serialize(long in,QName elementName)throws IOException;
public void serialize(boolean in,QName elementName)throws IOException;
public void serialize(short in,QName elementName)throws IOException;
public void serialize(char in,QName elementName)throws IOException;
}
Type Mapping
TODO