Validating IDREFS...
David Megginson
david at megginson.com
Sun Aug 30 13:25:29 BST 1998
Tyler Baker writes:
> > 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.
>
> 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.
Here are three points to note:
1. It is more important to pass information to the application about
_where_ the error occurs, and you can keep that information in the
hash table.
2. In a tree-based API, the error will be spotted before the tree is
completed, so the application will know about the error right at the
start before it can work with the tree.
3. In a stream-based API, the error will be obvious when you have
parsed the end tag of the document element -- you can report the
error before you report the element end.
All the best,
David
--
David Megginson david at megginson.com
http://www.megginson.com/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list