else if(Map.class.isAssignableFrom(ptype)) {
prop = new StringMapPropertyValue(pname, generatePropertyData(entityClass, pname), (Map) obj);
}
else {
final ISchemaProperty sp = schemaInfo.getSchemaProperty(entityClass, pname);
// nested property?
if(sp != null && sp.getPropertyType().isNested()) {
final BeanWrapperImpl bw2 = obj == null ? new BeanWrapperImpl(ptype) : new BeanWrapperImpl(obj);
for(final PropertyDescriptor pd2 : bw2.getPropertyDescriptors()) {
if(bw2.isWritableProperty(pd2.getName()) && isMarshalableProperty(pd2)) {
try {
final Object oval = bw2.getPropertyValue(pd2.getName());