how are you using dimension scales?

I've been playing with dimension scales in an attempt to describe the contents of data sets within HDF files. At present we have a set of predefined naming conventions for the datasets attached as dimension scales, and for the contents of the datasets.

For example, for a "Time" dimension scale, the DS data set would contain two floating point numbers, one being the modulus of the data set (how many seconds of data contained within the data set, and an indicator as to where index 0 would be expected to start), and the stride of each index in seconds.

Another example, we have hardware information where the DS data set contains an array of references to the hardware descriptors, one for each index in that dimension.

It all looked good when viewed in h5dump, but when I try to figure out the best way to read the data, I'm less sure about whether I did things "right". I can use H5DSiterate_scales and H5Iget_name on the dsid param passed to the iterator function to get the name I was expecting, but H5DSget_label and H5DSget_scale_name both return nothing.

Am I doing things wrong? Clearly there's a H5DSset_label that I'm not using, so that's obvious. What are the common practices for using dimension scales? I had based my code on ex_ds1.c, which doesn't do any kind of scale names, it seems (only the scale data set is named).