[
Lists Home |
Date Index |
Thread Index
]
On Wednesday 26 February 2003 19:00, K. Ari Krupnikov wrote:
> <!DOCTYPE A [
> <!ATTLIST D id ID #IMPLIED>
> <!ATTLIST D ref IDREF #IMPLIED>
> ]>
> <A>
> <B>
> <D id="d1">
> <any> children D might have, just to make it more interesting</any>
> </D>
> </B>
> <C>
> <D ref="d1"/>
> </C>
> </A>
Ah, but that's implementing a form of pointer on top of the underlying tree
structure by nominating a part of the tree - that, otherwise, would mean
nothing but that 'id' equalled 'd1' - and giving it some semantics.
Yet again, unless your program explicitly went to the effort of matching up
the id references itself, any parser would still show the D within B and the
D within C to be different elements. Even in XPath, they are different. The
DTD declares that the second D is linked to the first in some way, but
doesn't say that this is supposed to be an identity constraint, so it still
doesn't make it a DAG, it merely potentially *suggests* a DAG viewpoint of
the tree :-)
It would be a DAG if, instead of the second D, you could write:
<?xml-ptr d1?>
...with <?xml-ptr?> being defined as being substituted for the element whose
ID is d1 during parsing.
But anyway! I'm splitting hairs and have been doing so all day! Stop baiting
me! :-)
ABS
--
A city is like a large, complex, rabbit
- ARP
|