Re: Inheritance/defaulting of attributes

Paul Prescod (papresco@technologist.com)
Thu, 09 Oct 1997 14:08:12 -0400


Matthew Fuchs wrote:
> Seriously though, despite having written my share of OO (and other) code, I'd
> be very leery of anything that injects semantic notions into XML.

IDREF isn't a semantic notion? How about the very concept of element
"types". Isn't that semantic?

> Whether
> something is an ISA or HASA relationship may ultimately depend on the
> applications point of view. I.e., lion ISA animal, but lion also HASA
> superclass, depending on whether you are in the semantics of the zoo domain or
> the semantics of domain structures - and these can hopefully share the same
> semantics.

True, but we can benefit from subclassing at the SGML/XML level, without
even considering the needs of application designers. A survey of popular
DTDs would demonstrate that most re-invent the concept of subtyping in a
proprietary way. This makes reading, maintaining and extending the DTDs
hard and processing them in (e.g.) a GUI editor even harder (basically
the subtype relationships just disappear).

One of very common question on comp.text.sgml is "how do I extend DTDs"
and our only answer is: "by using this hack, if the DTD designer has
allowed it, or this other hack, if they took a different approach ..."
Archforms are not a mechanism for extending existing DTDs, but for
allowing documents to conform to multiple DTDs (including existing
DTDs).

I find it downright embarrasing that we have no half-way decent answer
to this question. Someone posed it last month on c.t.s as: "This is so
basic I must have missed something obvious in the XML spec." I wonder if
he ever got an answer...

> But all I really wanted to point out was that in eliminating a lot of SGML
> cruft, we'd also eliminated some of the tricks people have used in the past to
> finesse OO.

I reject the notion that the notion of subtyping is intrinsically
related to OO, but I take your point. Minmization can be used to finesse
many things and XML is poorer for not having it. Still, I find it
uncomfortable to use minimization to make up for restrictions in the
language.

Paul Prescod