Bulia, thanks for the detailed and clear explanation.  Very very helpful.

bulia byak wrote:
It should use yet another subclass of URIReference that you need to
create. Its sole difference from the others will be that it can only
link up text or tspan objects.

This may be based on my relative ignorance of SVG (still a newbie, really), but are there not more elements that can have character data in them? For example, there is technically character data in the <desc> element.  In theory, I think any element that has character data could be referred to.  According to the spec:

xlink:href = "<uri>": A URI reference to an element/fragment within an SVG document fragment whose character data content shall be used as character data for this 'tref' element.
All character data within the referenced element, including character data enclosed within additional markup, will be rendered.

And in a paper written in 2003 <http://www.svgopen.org/2003/papers/TheNextGenerationOfSVGFiles/index.html#S4.>:

According to the SVG specification: the 'tref' element has an attribute which is a URI reference to an element/fragment within an SVG document fragment whose character data content shall be used as character data for the 'tref' element.

Nobody ever says that is has to be a text or tspan element, though this may be a way to include textual elements in the future.

So what do you think - is it really limited to just the text and tspan elements, or anything that could potentially have character data between the tags?

Thanks!
Gail