+typedef struct Z_StringOrNumeric
+{
+ enum
+ {
+ Z_StringOrNumeric_string,
+ Z_StringOrNumeric_numeric
+ } which;
+ union
+ {
+ char *string;
+ int *numeric;
+ } u;
+} Z_StringOrNumeric;
+
+typedef struct Z_Unit
+{
+ char *unitSystem; /* OPTIONAL */
+ Z_StringOrNumeric *unitType; /* OPTIONAL */
+ Z_StringOrNumeric *unit; /* OPTIONAL */
+ int *scaleFactor; /* OPTIONAL */
+} Z_Unit;
+
+typedef struct Z_IntUnit
+{
+ int *value;
+ Z_Unit *unitUsed;
+} Z_IntUnit;
+