Re: Validating IDREFS...

John Cowan (cowan@locke.ccil.org)
Sat, 29 Aug 1998 21:45:47 -0400 (EDT)


Tyler Baker scripsit:

> 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.

Not really. All you need to keep is a list of IDs and IDREFs seen so far.
At the end of the document, they had better pair up correctly.

> I am not an SGML expert, so maybe someone here can give me some
> historical reason for why the XML spec needs to have ID's or at least
> ID's that have not previously been declared in the document when an
> IDREF is encountered.

The whole point of ID and IDREF is to have a simple intra-document
link, so that documents that have non-hierarchical natural structures
can be fitted into SGML/XML hierarchies. For that requirement,
forward references and even loops are sometimes essential.

-- 
John Cowan					cowan@ccil.org
		e'osai ko sarji la lojban.