xml:include and #CONREF

While discussing xml:include, links and IDs it may be useful to consider 
that SGML also has another species of IDREF, the CONREF: an element 
with a CONREF attribute must be empty, and is substituted with the element 
pointed to.

So in SGML, documents can be declared and traversed as trees, but actually
can be acyclic graphs with branches shared.  (Similarly with the ENTITY
attribute type.) So in SGML the IDREF mechanism is more intended for
use in semantic references rather than inclusion-style references. 

From that POV, it may be possible to see xml:include as an attempt to
regain CONREF as well as getting rid of ampersands.  The difference
is that CONREF has very clear semantics w.r.t validation: if it is not
specified the element is validated as per the DTD.  

Perhaps xml:include would be better if reformulated as CONREF,
and therefore providing clearer indication of its position on a processing
pipeline w.r.t. validation.  (In WXS terms, an element with a CONREF
attribute would have to be nillable, and marked up with xsi:nill='true',
but no special WXS features would be required: indeed, it would fit
on top of keyrefs.)  

CONREF-aware linking would automatically follow the link,
rather than seeing the linking element. This would be a good
value add.

Cheers
Rick Jelliffe

Received on Wednesday, 22 January 2003 07:41:46 UTC