This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: duplicate id's


[David Carlisle]

>
> > The ID '_1234567890' is duplicated.
>
> That isn't an XSLT error (teh XSLT spec goes to some lengths to define
> the (error free) behaviour which ensures that to XSLT there are never
> duplicate ids (as later matching attributes are not taken to be ids)
>
> So this means you are using a validating parser on your input.
> If you do that then having duplicate IDs is an error (specified in the
> XML Rec) so you get an error and XSLT never sees the document at all.
> So, you should ensure that you are using a non validating parser.
>
> If you are using a non validating parser you should not get an error
> (you could get a warning) but the attributes might not be reported as of
> type ID at all, in which case you can not use the id() function, but you
> can always use key() instead.
>

Of course, it depends on whether there is a DTD in use.  Without it, an
attribute named "ID" should not be taken for an attribute of type ID.
Gertjan may be able to try this be removing any DOCTYPE declaration from a
copy of one of the documents and trying it out.  If it still fails, or if
there was no DOCTYPE declaration in the first place, that would suggest that
the xpath parser is assuming that any attribute named "ID" is to be treated
as type "ID".  That's done in some XPointer implementations, isn't it (even
though stricly speaking, it's not correct behavior)?

Cheers,

Tom P


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]