First, <xenoData> should be a member of att.declarable. I think
that's pretty much a no-brainer, but raise it here in case someone
wants to object.
But my next issue is at least non-obvious, if not controversial (and
I hope it's not). How is a process to know whether the metadata
supplied in <xenoData> applies to the TEI document or to the source
thereof? Several possibilities jump to mind.
1) It doesn't. This is not our problem. Any project using <xenoData>
will know what metadata they are using, so they'll figure it out
just fine.
2) We add a new attribute to <xenoData>, @describes. Its possible
values are "source" and "transcription" or some such.
3) We use a special @type (with values "source" and "transcription"
or some such) for this, even though it's not quite right.
4) We add <xenoData> to att.typed and let projects come up with
their own values of @type to assert this information. Maybe with
suggested values (4a), maybe not (4b).
5) Instead of making <xenoData> a member of model.teiHeaderPart, and
thus a younger sibling of <fileDesc>, we allow <xenoData> to
occur as a child of <fileDesc> or as a child of <sourceDesc> (via
membership in model.sourceDescPart). In the former case the
metadata in <xenoData> is understood to apply to the TEI
document; in the latter case the metadata in <xenoData> is
understood to apply to the source from which the TEI document was
derived.
6) Like (5), but leave <xenoData> as a member of model.teiHeaderPart
instead of (6a) or in addition to (6b) a direct child of <fileDesc>.
Personally, I'm leaning very strongly towards (2), (5), or (6a). That
is, I think (1), (3), (4a), and (4b) are bad ideas, and prefer (6a)
to (6b). That said, I'm open to thoughts, ideas, and suggestions.