diff options
Diffstat (limited to 'tools/h5dump')
-rw-r--r-- | tools/h5dump/h5dump.c | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index 9834dda..85c554b 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -4049,10 +4049,16 @@ xml_dump_attr(hid_t attr, const char *attr_name, void UNUSED * op_data) indentation(indent); printf("<Data>\n"); indentation(indent); - printf("<DataFromFile>\n"); - xml_print_refs(attr_id, ATTRIBUTE_DATA); - indentation(indent); - printf("</DataFromFile>\n"); + if (!H5Tequal(type, H5T_STD_REF_OBJ)) { + printf("<!-- Note: Region references not supported -->\n"); + indentation(indent); + printf("<NoData />\n"); + } else { + printf("<DataFromFile>\n"); + xml_print_refs(attr_id, ATTRIBUTE_DATA); + indentation(indent); + printf("</DataFromFile>\n"); + } indentation(indent); printf("</Data>\n"); break; @@ -4163,6 +4169,8 @@ xml_dump_named_datatype(hid_t type, const char *name) nmembers = H5Tget_nmembers(type); indentation(indent); + printf("<DataType>\n"); + indentation(indent); printf("<CompoundType>\n"); indent += COL; @@ -4212,11 +4220,17 @@ xml_dump_named_datatype(hid_t type, const char *name) indent -= COL; indentation(indent); printf("</CompoundType>\n"); + indentation(indent); + printf("</DataType>\n"); } else { /* Other data types: call print_datatype */ + indentation(indent); + printf("<DataType>\n"); indent += COL; xml_print_datatype(type); indent -= COL; + indentation(indent); + printf("</DataType>\n"); } indent -= COL; @@ -4740,10 +4754,16 @@ xml_dump_dataset(hid_t did, const char *name, struct subset_t UNUSED *sset) indentation(indent); printf("<Data>\n"); indentation(indent); - printf("<DataFromFile>\n"); - xml_print_refs(did, DATASET_DATA); - indentation(indent); - printf("</DataFromFile>\n"); + if (!H5Tequal(type, H5T_STD_REF_OBJ)) { + printf("<!-- Note: Region references not supported -->\n"); + indentation(indent); + printf("<NoData />\n"); + } else { + printf("<DataFromFile>\n"); + xml_print_refs(did, DATASET_DATA); + indentation(indent); + printf("</DataFromFile>\n"); + } indentation(indent); printf("</Data>\n"); break; |