>The other thing to consider is whether the parser will even enforce
uniqueness. This is a validity constraint, >and lots of parsers don't
enforce validity. So your choice is either to always use a known,
validating parser or >write the enforcement code yourself.
I've hit this problem myself. One thing I would like in SAX 2.0 is the
ability to tell the parser that I expect it to do validation.
In practice because I couldn't rely on the parser to check uniqueness, and
because I was doing so much other "semantic" validation anyway (e.g. valid
dates, etc), I decided that I might as well do the uniqueness check myself.
I needed to build a dictionary of identifiers anyway to resolve IDREF
references: a validating parser will tell you whether an IDREF is valid, but
it won't necessarily tell you what it points to!
Mike Kay
PS. What confused me in the original question, however, was:
>Is it possible to use XML and/or DTD and/or the parser to generate unique
>ID's - I would think that would solve my (part of the) problem.
Generating ID's during parsing is of course is a different question from
validating IDs stored in the original XML.
One easy way to get numbers generated during parsing is to use SAXON - there
is an example in the automatic numbering of verses in the New Testament
rendition I published recently on this list.
Mike Kay