Again, working on the .NET 2.0 based RDML framework is making me reconsider (or just plain consider) some of the XML types we have.
As mentioned before both the id and name fields of the xRefType should at least be unique.
Also the following types should have the respective fields made unique:
rdmlIdType serialNumber & publisher (all)
I may be wrong about the last three, but I doubt it.
In fact organismType, xRefType, oligoType seems like they should become a relational type as experimenterType et. al.
It just appears to me that for example the same xRefType could appear in various target types, therefore it seems better to make it relational so we’re not repeating the same xRefType data over and over in various TargetTypes. It looks like the same would happen with organism and oligo, no?
My frame of mind is that in the case of well, step or run, we’re just dealing with a list or queue. In fact, I’m not sure why there is an id field. If it’s just there to keep them in order, their sequence in the XML file will take care of that. Or in the case of rdmlIdType, both fields should be unique, but all of the types will appear in one list or sequence in a single file. However, with the others, they need to be referenced by a unique key in at least one but possibly many other parts of the file.
If you mean by 'all' that all the fields of the type together have to be unique, then you're right when saying that those fields have to be unique.
And it xRefType, organismType and oligoType should indeed become relational types.
The id for a well, I think is necessary, to be able to identify that well on the (physical) plate. Without a well-id, it would be impossible to know which well on the plate contains specific samples. For internal use in the RDML file (and by applications) the well-id is not necessery, but I would keep it.
The step-id and run-id are not really necessary, but the run-id could be useful to reference the run in other files or maybe a lab-book.
"The step-id and run-id are not really necessary, but the run-id could be useful to reference the run in other files or maybe a lab-book."
Then we can at least make them unique in order to truly be an ID.
By "all", I mean that all the fields of the type should be unique. With rdmlIdType, I'm not sure why anyone would want the same publisher with two different serial numbers or vice versa.
Is the free description sufficient for an id key for the organismType or should we add a specific ID field?
What would be the id key field for the oligoType?