Both PageHeader and PageBody are "wrappers" on underlying Maps that hold datatypes of various types, keyed by field names (Strings). The valid field names for a service are described in the service meta info file (an xml document). Null values are not allowed; use empty strings to represent missing values (e.g. for null date).
Note that most system datatypes are represented in these Java objects as simple Strings. Note the following: