- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: Mon, 3 Mar 97 10:18:41 GMT
- To: w3c-sgml-wg@w3.org
Tim writes:
> f. behavior
>
> . . .
>
> There will be an attribute named SHOW, which may have one of three values:
>
> INCLUDE - means that upon traversal of the link, the indicated resource
> should be embedded, for the purposes of display or processing, in the body
> of the resource where the traversal started. (e.g. like HTML <IMG)
> REPLACE - means that upon traversal of the link, the indicated resource
> should, for the purposes of display or processing, replace the
> resource where the traversal started. (e.g. like HTML <A)
> NEW - means that upon traversal of the link, the indicated resource should
> be displayed or processed in a new context, not affecting that of the
> resource where the traversal started (e.g. like HTML <A TARGET="NEW" [I
> think])
Sorry, same old song: I have trouble with this outside the browser
application context, although I appreciate the attempt to consider the
broader application context which is evident in this post. Let's take
this in pure SGML terms. Turns out REPLACE is the easiest: it's just
super-CONREF, right? I.e.
<vanilla id=baz>...[arbitrary content]...</vanilla>
. . .
<foo xml-link=link show=replace href="(id) baz">...[foo content]...</foo>
--->
<vanilla id=baz>...[arbitrary content]...</vanilla>
. . .
<vanilla id=baz>...[arbitrary content]...</vanilla>
Note that with ACTUATE=AUTO, the processor can [should?] implement
this one, it means what it says, you get the target resource IN PLACE
OF the source resource, which is never seen by the application.
[sub-note: this inclines me more towards James's suggestion that the
multiplication should be expanded out].
Now I realise I've probably willfully misinterpreted what Tim wrote,
which was "replace the resource". That's what I've just described,
but it's NOT what HTML <A does, is it?! So did the ERB mean "replace
the DOCUMENT CONTAINING the resource"? As has been pointed out in
some subsequent correspondence, this is drastic if ACTUATE=AUTO.
INCLUDE is similar to the literal understanding of REPLACE above, it
differs only in embedding the target resource within the source
resource:
<vanilla id=baz>...[arbitrary content]...</vanilla>
. . .
<foo xml-link=link show=include href="(id) baz">...[foo content]...</foo>
--->
<vanilla id=baz>...[arbitrary content]...</vanilla>
. . .
<foo>
<vanilla id=baz>...[arbitrary content]...</vanilla>
</foo>
Two things to note: foo's content is gone, and so are its link-related
attributes. Wrt the first of these, seems to me we might
actually want to enforce the CONREF parallel, and require that at
least in cases with ACTUATE=AUTO, the linking element must be empty,
i.e. <foo xml-link=link show=include href="(id) baz"/>
The link-related attributes go as a concommitant of the fact that
their semantics have been realised.
Finally NEW -- that's essentially a SUBDOC entity in an attribute.
Sorry to go on so long, but if we're going to do this at all we need
to be clear what we're doing. I think in fact groves provide the only
sensible way to specify what we mean in an application-neutral way.
So let's try that, using the name SNODE for the node in the grove of
class Element which instantiates the linking element we're concerned with:
INCLUDE: On actuation, replace the content of SNODE with the grove
fragment (one or more nodes) which instantiates the target resource.
REPLACE: On actuation, replace SNODE (or (grove-root SNODE), see
above) with the node (must be exactly one) which instantiates the
target resource.
NEW: On actuation, construct a new grove which instantiates the
target resource.
One useful point this throws up is that in the case of NEW and
REPLACE, the target resource better be a single element == a single
node, whereas for INCLUDE it can be a sequence thereof (this turns out
to be exactly what I need for an existing application which uses
INCLUDE semantics).
A final point: NONE of this makes any sense for extended links, as
far as I can see.
ht
Received on Monday, 3 March 1997 05:18:45 UTC