Re Hytime for HTML 3.0

Terry Allen (terry@ora.com)
Wed, 22 Mar 95 13:14:06 EST

Thanks to Christian for reposting that DTD, which I missed the first time
around. Herewith some remarks.

Below are excerpts from your Hytimed HTML 3.0 DTD. It appears to me
that you have relegated URI links to "Deprecated" and substituted
a Hytime mechanism in "Recommended." This is completely unacceptable.
URIs (currently only URLs) are the glue of the Web; they give a method
of linking that competes with (I know, unfavorably in your view) the
Hytime approach. We are not about to throw them out. I suggest you
rewrite this DTD proposal in some way that *adds* Hytime mechanisms
rather than *forcing them* upon us (I don't regard allowing URLs
in "Deprecated" as meeting this requirement).

You remark re entity management:
>HTML is doing it with the URL mechanism and this is not exactly the
mechanism proposed by SGML.

But URLs are not forbidden by ISO 8879, which might be inferred from
your statement. On to the excerpts:

<!DOCTYPE HTML PUBLIC "-//W3O//DTD HTML 3.0//EN" [
<!ENTITY target-doc SYSTEM "http://www.w3.org/foo.html" CDATA SGML>
<!-- The target document is declared as a data entity conforming to
the SGML notation declared at the bottom of this DTD -->
<!-- Other entity declarations will go here -->
]>
<HTML>......
<A linkends="nmloc-target"><!-- one link end has been omitted and
it corresponds to the element A itself -->
Here is the anchor that will lead me to the target document.
<NMLOC id=nmloc-target><NMLIST docorsub=target-doc>target-id</NMLOC>
<!-- You can see that the target-id is in the content of the NMLIST
element. -->
......</HTML>

You forgot to close the A (and NMLOC is allowed only within A in your
DTD, which is not too flexible).

Also, as the information that is to be dispatched via HTTP
when a user clicks on a Hy-A link is in fact a URL (here, the value
of the docorsub att on NMLIST concatenated with the element content
of NMLIST according to rules not expressed in your Hytime additions
to the 3.0 DTD), um, what's the advantage of expressing things this
way, except to adopt some of the Hytime formalism?

<![ %HTML.Recommended; [
<!ELEMENT A - - %A.content -(A) +(NMLOC) >
<!ATTLIST A
HyTime NAME #FIXED ilink
anchrole CDATA #FIXED "source target"
-- roles of the link anchors --
linkends IDREFS #REQUIRED
-- link ends --
extra NAMES "A A" -- HyTime traversal rules --
intra NAMES "A A" -- HyTime traversal rules --
%attrs;
%url.link; -- standard link attributes --
%linkName; -- name attribute is deprecated; use ID
instead --
shape %SHAPE; #IMPLIED
-- for shaped hotzones in FIGs --
%linkExtraAttributes; >
<!ELEMENT NMLOC - - (NMLIST*) >
<!ATTLIST NMLOC
HyTime NAME #FIXED nameloc
id ID #REQUIRED >
<!ELEMENT NMLIST - O (#PCDATA) >
<!ATTLIST NMLIST
HyTime NAME #FIXED nmlist
nametype (entity|element|unified) element
obnames (obnames|nobnames) obnames
docorsub ENTITY #IMPLIED >
]]>

<![ %HTML.Deprecated; [
<!ELEMENT A - - %A.content -(A) >
<!ATTLIST A
%attrs;
href %URI; #IMPLIED
%url.link; -- standard link attributes --
%linkName; -- name attribute is deprecated; use ID
instead --
shape %SHAPE; #IMPLIED
-- for shaped hotzones in FIGs --
%linkExtraAttributes; >
]]>

-- 
Terry Allen  (terry@ora.com)   O'Reilly & Associates, Inc.
Editor, Digital Media Group    101 Morris St.
			       Sebastopol, Calif., 95472
occasional column at:  http://gnn.com/meta/imedia/webworks/allen/

A Davenport Group sponsor. For information on the Davenport Group see ftp://ftp.ora.com/pub/davenport/README.html or http://www.ora.com/davenport/README.html