I started out noticing that the <valDesc>s of occurs= and withId= of <tagUsage> say “an integer number greater than zero” where the datatype (very sensibly) permits 0. I was just going to fix this by changing the <valDesc>s to “an integer number greater than or equal to zero”, when I noticed that the <remarks> of the ‘data.count’ tagdoc says “Only positive integer values are permitted” where the datatype clearly permits 0. Personally, it would never occur to me to limit a count to positive numbers — zero is a perfectly reasonable count. But I found myself wondering if TEI really wants to have ‘data.count’ exclude 0 as a possible value, as there are contexts where 0 makes no sense (e.g., rows=, cols=, maxOccurs=). I think the answer is “no”, although in some cases an extra restriction that the count cannot be 0 is appropriate. (Or a different datatype).
On further investigation I found at least one case where data.count is (IMHO) used inappropriately: group= of att.damaged. I am not sure why the grouping would be limited to numbers in the first place, but it is not a count in any case.
There are two cases where nonNegativeInteger is used directly, as opposed to via data.count, and I think these are both appropriate:
The attributes defined as data.count are:
All tests against revision 6658.