Re: Validating IDREFS...

James Clark (jjc@jclark.com)
Sat, 29 Aug 1998 13:54:39 +0700


Tyler Baker wrote:

> Does this mean that you need to have the entire document parsed before
> you can make the check that the value of the ID matches the ID of some
> element in the document?

Yes.

> If this is true, then for validating parser implementations you will
> first need to build an in memory parse tree using a non-validating
> parser and then validate the document by recursively traversing the
> parse tree. For large documents that wish to be validated, this seems
> like a major performance and memory problem, especially in memory hungry
> languages like Java.

You need to maintain a hash table of IDs in order to enforce the ID VC
(uniqueness of IDs). To check matching of IDs you just add a boolean
that says whether the ID has been defined yet. At the end of the
document, iterate over the hash table and give an error for each
undefined ID.

James