- From: Tim Bray <tbray@textuality.com>
- Date: Mon, 24 Feb 1997 16:22:11 -0800
- To: w3c-sgml-wg@w3.org
The ERB met Sat. Feb. 22. Present: all but Clark and DeRose. Discussion
was on the subject of recognition of linking elements. The decisions
we have apparently taken do leave us with some fairly serious concerns,
so we are submitting both the decisions and the concerns to the WG on
the theory that someone may convince us either that the concerns are
overblown, or that they are understated and that we should proceed to
a fallback position.
I. Recognizing linking elements via attributes
With respect to recognition of linking elements, the ERB has consensus
that the best way to do this is with reserved attributes. The attribute
name should probably be "XML-LINK". There is, however, a consequence
which could lead to direct conflict between the desire for operational
simplicity and that for document validity.
The problem is, how to declare and provide a default value for the
XML-LINK attribute?
1. The case where no markup declarations are provided:
plan A: supply the attribute for each element that is a
linking element.
2. The case where only the internal subset is to be provided:
plan B: declare the attribute with a #FIXED default value
in an <!ATTLIST in the internal subset.
Both of these are perfectly viable; plan A might be sensible
even with an internal subset, if the number of linking attributes
is small.
3. The case where there is an external DTD subset:
plan A: same as above
plan B: same as above
plan C: declare the default in the external subset
But plan C means the client has to fetch the external subset in order
to get the necessary declaration. Which is a violation, we think, of
our axioms. To avoid that, stick it in the internal subset. Oops,
then either
plan C1: you remove it from the external subset, or
plan C2: you provide invalid documents to the client; 8879 makes it
illegal to have multiple <!ATTLIST declarations for the
same element.
Plan C1 is operationally infeasible. C2 violates another of our
axioms, that XML should support operations on valid documents.
Of course, the problem goes away if 8879 is modified to remove the
current prohibition on multiple <!ATTLIST declarations; and we hope
that this will happen in the not-too-distant future.
However, the ERB is convinced that for Web viability, there *must be* a
signaling mechanism that's within the document instance that gets sent
down the pipe. So, if it seems that the conflict with 8879 doesn't go
away, we will avail ourselves of an escape hatch; at the moment there
seem to be four options:
e1: Steve Pepper's elegant <!LINKTYPE proposal
e2: A PI-based signal
e3: A special XML-LINKMAP element that sits at the front of
the instance.
e4: A special XML-LINKMAP element that goes in an external document
(stylesheet or something found by analogous means), as proposed
by Terry Allen and Alex Milowski
There was sharp dissension in the ERB on what to do given the
uncertainty on what WG8 will do. Several members, while respecting the
integrity and appropriateness of the <!LINKTYPE technique, find the
syntax, and the prospect of explaining it, repellent. Nonetheless, the
<!LINKTYPE technique, if only as an interim measure, remains the choice
of at least one member. The PI technique is nicer looking and easier to
explain, but requires extra implementation. It also (I think) remains
the first choice of one or more ERB members. Some feel that the
<!ATTLIST in the subset has the advantage of requiring no extra syntax
beyond that in base XML, and the problem of the conflict between
manageability and maintaining SGML validity would be a non-issue,
operationally. There is also concern on the part of ERB members about
adopting interim measures at all, especially while there is active work
going on among WG8 members in an effort to address the concerns raised
by the XML work.
By a vote of 8 to 1 (Sperberg-McQueen dissenting), the ERB tentatively
decided to
- specify that linking elements are to be recognized using the value
of a reserved attribute
- include in the XML Link spec some application notes as to the
operational techniques for such signalling, including providing
it on each element and using <!ATTLIST in either internal or
external subsets
- point out that it is not possible to duplicate external subset
markup declarations in the internal subset without compromising
SGML validity
- promise, in the draft, that if the multiple-ATTLIST method does
not become legal in SGML, one of the other feasible methods which
provide compatibility with SGML will be substituted for the
multiple-ATTLIST method (but not to decide until then which option
will be chosen)
II. Recognizing linking elements via GI
The ERB voted as follows: In favor of allowing recognition via GI:
Bray, Magliery, Maler, Kimber. Against: Bosak, Hollander, Paoli,
Sharpe, Sperberg-McQueen. Thus the measure fails.
The arguments here are simple. In favor of doing this are the facts
that it's easy to explain, and that this is the specified default
behavior for an architecture anyhow. Against it are the benefits of
having only one way to do things, with the accompanying desirable
shrinkage and simplification in the specification. Given the closeness
of the vote, I *think* I can speak for most of us in saying that it
was a pretty close call, and most of the ERB, regardless of the way
they voted, probably could have lived with it going either way;
the arguments on both sides are palpably good, and the consequences
of a wrong choice don't seem that severe.
Cheers, Tim Bray
tbray@textuality.com http://www.textuality.com/ +1-604-708-9592
Received on Monday, 24 February 1997 19:23:20 UTC