containingElement.setAttribute("type", getQNameString(qName));
return;
}
// look up the serializer in the TypeMappingRegistry
Serializer ser = null;
SerializerFactory factory = null;
if (tm != null) {
factory = (SerializerFactory)tm.getSerializer(type);
} else {
factory = (SerializerFactory)defaultTM.getSerializer(type);
}
// If no factory is found, use the BeanSerializerFactory
// if applicable, otherwise issue errors and treat as an anyType
if (factory == null) {
if (isEnumClass(type)) {
factory = new EnumSerializerFactory(type, qName);
} else if (isBeanCompatible(type, true)) {
factory = new BeanSerializerFactory(type, qName);
} else {
return;
}
}
if (factory != null) {
ser = (Serializer)factory.getSerializerAs(Constants.AXIS_SAX);
}
// if we can't get a serializer, that is bad.
if (ser == null) {
throw new AxisFault(
Messages.getMessage("NoSerializer00", type.getName()));
}
Element typeEl;
try {
typeEl = ser.writeSchema(type, this);
} catch (Exception e) {
throw AxisFault.makeFault(e);
}
// If this is an anonymous type, just make the type element a child