CloudWatch namespaces can't be an enum - it supports custom values. Back into strings with some constants instead.
ELB also uses the Response/Result tree in their XML responses.
Turn the default "Unknown" enum value into an NSNumber before we return it.
NSNumber the enum value when no nodes are found also.
Support arrays of enums and dates that may or may not include milliseconds.