As part of a project to develop some generic code to run on any
collection of TEI documents and check idref integrity, we've been faced
with finding a relatively simple way to iterate through all the
attributes in a document that have the teidata.pointer type.
There are 109 attDefs with the teidata.pointer type in the P5 source,
some defined in classes and some directly on elements.
There are a further 29 attributes which share a name with one of the
109, but which are not pointers. For instance:
leaf/@value is teidata.pointer, but binary/@value is not.
keywords/@scheme is teidata.pointer, but tag/@scheme is not.
The situation is further complicated by the fact that some attributes
are derived from others by redefining with @mode="change", and may or
may not redefined their datatype (I believe there's only one case of
this affecting teidata.pointer attributes, alt/@target, but more may
crop up in time).
What would you say is the simplest, cleanest way to generate an XPath
which selects all and only the teidata.pointer attributes in a document
which validates against tei_all?