- From: Steven J. DeRose <sjd@ebt.com>
- Date: Wed, 08 Jan 1997 15:51:48 -0500
- To: w3c-sgml-wg@www10.w3.org
At 12:20 PM 01/03/97 -0500, David G. Durand wrote: >I want to make clear that I am not saying that extra elements or entity >references _cannot_ be used in XML linking, they almost certainly will be >needed. However, nothing that can currently be done in HTML should become >any harder when using XML -- that would be a prescription for failure. Call >me reactionary, but I'm just trying to speak for the people who already >know HTML who just want to get the job done -- they may accept additional >complexity for additional power, but if what they can already do becomes >harder, they won't necessarily take the trouble to enter our brave new >world of descriptive markup. What David is proposing is not *just* needed for HTML. Most industry-standard DTDs have a similar mechanism. Since SGML doesn't provide inter-book linking syntax, but everybody needs inter-book links, most DTDs have something like: <!ELEMENT interbook - - (whatever)> <!ELEMENT interbook tgt.entity ENTITY #REQUIRED tgt.idref NAME #REQUIRED> HyTime (until the TC) provided no support for cases similar to this. So, all those documents would have to be re-authored even though what they're doing is reasonable. One explanation tendered was that it is evil to combine a link and a location address, but that is pontifical, and even a HyTime clink can point directly to a destination in the same document. So, we at the very least need to include a comparably simple construct (the alternatives, telling all HTML users to re-author all their links, or to say we can't support HTML links in XML, are, as Vizini would have said, inconceivable). A link with a URL on an attribute is structurally the same, it just has slightly different syntax: it combines the two attributes into one, and it puts a system identifier (essentially) right there, instead of indirecting through the DTD. Lots of SGML "cheats" with public or system ids on attributes, rather than indirecting through entity declarations. We can say that's awful if we like, but its frequency shows it is attractive, perhaps because: a) it keeps the whole reference in once place, which greatly simplifies readability and maintainability. b) it keeps authors from having to learn a second language, namely that of markup declarations, so it's easier to teach, and easier to create UIs for. c) it eliminates 90% of the need for internal declaration subsets, which allows applications (often) to precompile DTDs and save time and space. d) it saves system resources because you don't have to keep all your entity dcls around on the off chance that the last element in the document may mention one a second time. since most entities that are declared to allow linking, are referenced only once or a very few times, you gain a lot on average even though we can dream up scenarios where you'd lose. So that's another plea for (a) keeping it majorly simple for simple cases, and (b) making sure existing HTML and other linking protocols can be subsumed. Steve
Received on Wednesday, 8 January 1997 15:53:39 UTC