Joe,
Last night I read over the DocBook 2.3 DTD [1], and as you said, Terry
Allen and Eve Maler have done a terrific job. I'd recommend that those
thinking about future HTML DTD modularity check out the DocBook 2.3 DTDs
(if they haven't already done so), which are set up as a series of cleanly
structured modules. I believe that structurally this would be an
advantageous approach for HTML, especially if some agreed-upon syntax were
developed to state the current status of each module (experimental |
prototype | standard, etc.). Since we are dealing with modules in various
stages of completion, this would seem a necessary feature. I've included
below an attempt at an HTML 2.1 DTD using an approach similar to DocBook
2.3 (please note the disclaimers).
If such a document (or something similar in concept) could be worked into a
functional product, it would save us the headache of waiting for all
component parts to reach maturity and allow "the market" to test features
out with some type of "Glue RFC" as a foundation.
One could, for example, have different HTML driver versions (2.1, 2.2,
etc.) each referencing a different set of modules, modified as necessary as
each module comes to closure. The status of the overall "glue RFC" would be
the status of the least formalized module, the status set similar to Larry
Masinter's `Procedural' vs `Draft Standard' message to the html-wg [2]. For
example, if any included module were labeled "experimental", the composite
glue DTD would be labeled likewise.
Dan, your idea of building the DTD from s-expressions [3] sounds
interesting but very difficult. Have you seen the DocBook DTD that Joe
mentioned? I pulled it apart and found it very understandable. I believe
that the current HTML 2.0 DTD could be modularized without too much
difficulty. I don't know if the process of breaking it into component
modules would invalidate the current draft sent to the IESG, since apart
from SGML file structure the content *should* produce the same end product.
At a point when such a modularization occurs, a scheme such as below could
be used to promote production of working DTDs that would enable developers
to "market test" concepts in various stages of completion. For example,
Amanda Walker could support Netscape's table model with a prototype,
operational DTD, which could be updated when the tables draft becomes a
standard.
Joe, I'd love to see what you've done with your "extensible HTML DTD". I'm
not the SGML expert you are, but as an exercise I thought I'd give it a
shot. Please, not too much nitpicking the details: I'm a beginner at this.
The HTMLcore.module could certainly be broken into "submodules" as well.
Murray
Disclaimers:
1) No claim is made here of an accurate or operational DTD.
2) This DTD wishfully pretends that 2.0 is a current ISO standard.
3) Please excuse the fake version numbers and dates.
4) If cornered, I will admit I haven't a clue as to what I'm doing.
------- DTD follows --------
<!-- ---------------------------------------------------------------------- -->
<!-- HTML DTD V2.1
File: html-21.dtd
Document Type Definition
for the HyperText Markup Language plus Tables (HTML DTD Plus Tables)
$Id: html-21.dtd,v 1.0 1995/09/14 16:50:22 altheim Exp $
Author: Murray M. Altheim <murray.altheim@nttc.edu>
-->
<!ENTITY % HTML.Status
"Prototype">
<!ENTITY % HTML.version
"-//Altheim//DTD HTML 2.1//EN"
-- Typical usage:
<!DOCTYPE HTML PUBLIC "-//Altheim//DTD HTML 2.2//EN">
<html>
...
</html>
--
>
<!ENTITY % ISOlat1.module "INCLUDE">
<!ENTITY % HTMLcore.module "INCLUDE">
<!ENTITY % HTMLtables.module "INCLUDE">
<!-- ---------------------------------------------------------------------- -->
<!-- DTD modules .......................................................... -->
<!-- ISO character entity sets ............................................ -->
<!ENTITY % ISOlat1.Status
"Standard">
<![ %ISOlat1.module; [
<!ENTITY % ISOlat1 PUBLIC
"ISO 8879:1986//ENTITIES Added Latin 1//EN//HTML">
%ISOlat1;
<!--end of ISOlat1.module-->]]>
<!-- ...................................................................... -->
<!-- HTML 2.0 DTD
File: html.dtd
Document Type Definition for the HyperText Markup Language
(HTML DTD)
ISO xxxx:yyyy Standard specification 23-Oct-95
$Id: html.dtd,v 2.0 1995/09/23 15:30:00 connolly Exp $
Author: Daniel W. Connolly <connolly@w3.org>
See Also: html.decl, html-1.dtd
http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
-->
<!ENTITY % HTMLcore.Status
"Standard">
<!ENTITY % HTMLcore.Version
"-//IETF//DTD HTML 2.0//EN"
-- Typical usage:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
...
</html>
--
>
<![ %HTMLcore.module; [
<!ENTITY % HTMLcore PUBLIC
"-//IETF//DTD HTML 2.0//EN">
%HTMLcore;
<!--end of HTMLcore.module-->]]>
<!-- ...................................................................... -->
<!-- HTML 3.0 Tables v1.0
File: html3-tables.dtd
Document Type Definition for HyperText Markup Language Tables
(HTML Tables DTD)
Prototype specification 18-Sep-95
Expires: 18-Mar-96
$Id: html3-tables.dtd,v 1.0 1995/09/18 12:30:00 raggett Exp $
Author: Dave Raggett <dsr@w3.org>
See Also: html3-tables.dtd
http://www.w3.org/hypertext/WWW/MarkUp/html3/html3-tables.dtd
-->
<!ENTITY % HTMLtables.Status
"Prototype">
<!ENTITY % HTMLtables.Expires
"18-Mar-96">
<!ENTITY % HTMLtables.Version
"-//IETF//DTD W3C Prototype Spec 18-Sep-95//EN">
<![ %HTMLtables.module; [
<!ENTITY % HTMLtables PUBLIC
"-//IETF//DTD HTML Table Model//EN//HTML">
%HTMLtables;
<!--end of HTMLtables.module-->]]>
<!-- End of HTML DTD V2.1 ................................................. -->
<!-- ---------------------------------------------------------------------- -->
- - - - - - - - - - - - - - - - - - - - - - -
[1] DTD files for DocBook V2.3 available at
ftp://ftp.ora.com/pub/davenport/docbook/
docbk23.tar.Z
The complete set of DocBook 2.3 files.
docbook.dtd
This is the driver file for Version 2.3 of the DocBook DTD.
calstbl.mod
This module contains the definitions for table markup
in DocBook documents.
dbgenent.mod
Declare and reference any general entities and entity sets here.
dbhier.mod
This module contains the definitions for the overall document
hierarchies of DocBook documents.
dbpool.mod
This module contains the definitions for the objects, inline
elements, and so on that are available to be used as the main
content of DocBook documents.
[2] Larry Masinter <masinter@parc.xerox.com> (HTML-WG)
"`Procedural' vs `Draft Standard' for HTML 2.0 extensions?"
Mon, 11 Sep 95 01:36:39 EDT
http://www.acl.lanl.gov/HTML_WG/html-wg-95q3.messages/1003.html
[3] Daniel W. Connolly <connolly@beach.w3.org> (WWW-HTML)
"Re: DTD Modularity [Was: Glue RFC]"
Wed, 13 Sep 1995 12:12:28 -0400
http://www.eit.com/www.lists/www-html.1995q3/0576.html
__________________________________________________________________
Murray M. Altheim, Information Systems Analyst
National Technology Transfer Center, Wheeling, West Virginia
email: murray.altheim@nttc.edu
www: http://ogopogo.nttc.edu/people/maltheim/maltheim.html