@cRef occurs on <gloss>, <term>, <ptr>, and <ref>. There are several issues with it:
1. It is separately defined in each element, rather having an attribute class.
2. The definitions and datatypes vary: <gloss> and <term> have a single data.pointer, while <ptr> and <ref> have unbounded data.word.
3. The <valDesc>s are out of sync with the datatypes. For instance, the <valDesc> on <ref>/@cRef says "Currently these Guidelines only provide for a single canonical reference to be encoded on any given ref element," whereas the datatype has @maxOccurs="unbounded".
I would suggest:
- A single attribute class containing this attribute, so we can standardize the datatype and description.
- The datatype should either be one-to-many data.word or one-to-many data.pointer, whichever is more appropriate for this usage. Either will do, I think, but in the case of the latter, the canonical reference would have to comply with pointer syntax, presumably using a private prefix. Pointers would also be easier for validators to enforce.