Jeni Tennison wrote:
> count(..|id(.)) = 1
>
> or:
>
> generate-id(..) = generate-id(id(.))
>
> In other words "is my parent element the same as the element that I
> get when I try to retrieve elements with my value as their ID?"
That's a correct prose description, but that's not the same thing as
determining that the attribute is ID-typed.
<foo id="bar" fakeId="bar"/>
Your test will return true for both attributes above. I can be sure that one
of them is ID-typed, but I can't be sure which one, or even if both of them
are (because input may be invalid).
> You could say that you create an ID attribute in XSLT whenever you
> create an attribute that is declared as an ID attribute in the DTD
> that you associate with the result document (using doctype-system on
> xsl:output), I suppose?
That assumes that the XSLT processor always has control over the serializer
(and hence its being an optional feature). I can't make that assumption. So,
I'll probably just use an intermediate representation a la a my:idatts
attribute to denote which attributes are ID-typed. So postulate that I've
got the ID-generation problem solved.
But I have no way of figuring out which attributes are ID-typed in the first
place!
Evan