+struct xml_string_spec {
+ const char *name;
+ size_t offset;
+};
+
+#define ELEM(STRING_NAME, MEMBER_NAME) \
+ {STRING_NAME, offsetof(struct image_info, MEMBER_NAME)}
+static const struct xml_string_spec
+image_info_xml_string_specs[] = {
+ ELEM("NAME", name),
+ ELEM("DESCRIPTION", description),
+ ELEM("DISPLAYNAME", display_name),
+ ELEM("DISPLAYDESCRIPTION", display_description),
+ ELEM("FLAGS", flags),
+};
+#undef ELEM
+
+#define ELEM(STRING_NAME, MEMBER_NAME) \
+ {STRING_NAME, offsetof(struct windows_info, MEMBER_NAME)}
+static const struct xml_string_spec
+windows_info_xml_string_specs[] = {
+ ELEM("PRODUCTNAME", product_name),
+ ELEM("EDITIONID", edition_id),
+ ELEM("INSTALLATIONTYPE", installation_type),
+ ELEM("HAL", hal),
+ ELEM("PRODUCTTYPE", product_type),
+ ELEM("PRODUCTSUITE", product_suite),
+};
+#undef ELEM
+