private DataProperty BuildDataProperty(Dictionary<string, object> data) {
var dp = new DataProperty();
object temp;
dp.name = data.TryGetValue("nameOnServer", out temp) ? (string) temp : (string) data["name"];
dp.dataType = data.TryGetValue("dataType", out temp) ? (string) temp : (string) data["complexTypeName"];
dp.isNullable = data.ContainsKey("isNullable") ? (bool) data["isNullable"] : true;
object validators;
if (data.TryGetValue("validators", out validators)) {
dp.validators = new List<Validator>();
var validatorData = (List<Dictionary<string, object>>)validators;
foreach (var vd in validatorData) {
dp.validators.Add(BuildValidator(vd));
}
}
return dp;
}