HI all,

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?