> 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
This I know is one idea to get around this problem and this is basically my
current implementation as well, but shouldn't a validating XML parser flag an
error if an IDREF does not have a corresponding ID when the error occurs. In
other words, I would think that deferring errors before the content is passed to
the document would be illegal.
Basically, I just need to know if it is OK to pass errors to the application
after all of the content has already been parsed and passed to the application.
Thanx,
Tyler