[Prev][Next][Index][Thread]

Re: 3.1 b-h: BEHAVIOR



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


References: