Sun Microsystems - Products and Solutions
DTD Development

Last Revised: Wed, Sept. 24, 1997

Description | Files | Catalog and File directory | SGML Declarations for SHML
SHML 1.0 DTD Drivers | DTD Modules | ISO Character Entity Sets | Revisions | Feedback

Mehitabel in Melon Boat
SHML Version 1.0, code-named "Mehitabel"
Document Type Definition for the
Structured HyperText Markup Language


Project Mehitabel is a next-generation, modular HTML DTD (labelled "SHML 1.0") based on HTML 3.2, but with changes/improvements as described below. Mehitabel may serve many needs: authoring, document design, validation, etc. It is not meant to capture the complete array of current Web features, rather it is meant as a good, structured DTD for document authoring, with extensibility to allow for additional features. It would also be a suitable place to scrounge for HTML-based XML components, with necessary modifications. SHML is currently the basis for HTML inclusions in various prototype document types.


The complete distribution of all files in a tarred, gzipped archive (19.5K)

NOTE if your browser isn't set up to handle .dcl, .dtd, .mod and .ent file extensions as MIME text/plain, your browser may choke on some of the following files.

Catalog and File directory

Mehitabel's SGML Open Technical Resolution 9401-style catalog file, using relative filename SOIs.
The same catalog file, but with absolute URL SOIs.

James Clark's documentation on catalog files:

SGML Declarations for SHML

The current W3C HTML 3.2 SGML declaration.
This is the SGML declaration for use with SHML 1.0. Note that if your application is not i18n-compatible, you should use the SHML 1.0 declaration below.
This is the SGML declaration for use with non-internationalized SHML 1.0, based on the ISO 646:1983 character set. You should change the parameter entity %HTML.Unicode; in the dtd driver to 'IGNORE'.

SHML 1.0 DTD Drivers

Please note that the revision number found in the SCCS header at the beginning of the DTD driver may be used as a reference, such as:

      $Id: @(#)shml10.dtd     1.5 - 97/09/24 17:36:20 altheim $
This is the modular driver file for the Mehitabel, version 1.0 of the SHML DTD (also considered the 'strict' version). Please use the following formal public identifier (FPI) to identify it:
        "-//Sun Microsystems//DTD HTML 3.2-Based Variant SHML 1.0 Draft//EN"
This is the driver file for the 'relaxed' version Mehitabel, version 1.0 of the SHML DTD. Please use the following formal public identifier (FPI) to identify it:
        "-//Sun Microsystems//DTD HTML 3.2-Based Variant SHML 1.0 Santa Cruz//EN"

This DTD relaxes the restrictions on heading level hierarchies and makes optional various element end tags.

This is the driver file for the 'lax' version of Mehitabel, version 1.0 of the SHML DTD. Please use the following formal public identifier (FPI) to identify it:
        "-//Sun Microsystems//DTD SHML 1.0 Lagunitas//EN"

This DTD no longer requires heading level hierarchy, end tags on various elements, plus includes all deprecated elements and attributes.

Also available:

This is a flattened, monolithic version of Mehitabel, version 1.0 of the SHML DTD, obtained by expanding all module references using spam. This DTD is functionally identical to the modular SHML 1.0 DTD listed above.

DTD Modules

"-//Sun Microsystems//ELEMENTS SHML 1.0 Anchors//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Java Applets//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Base Class Entities//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Document Body//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Character Mnemonics//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Client-Side Image Maps//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Forms//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Document Head//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Headings//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Content Model Hierarchy//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Images//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Link//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Lists//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Document Structure//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Tables//EN"
"-//Sun Microsystems//ELEMENTS SHML 1.0 Text Markup//EN"

SHML 1.0 DTD Link Process Definition

NOTE: Current discussion with WAI (Web Access Initiative) members is leaning toward abandonment of ICADD DTD processing in preference for tools that process HTML directly. This file is included for historical purposes only.

shmlsda.lpd (currently not available)
This is the Link Process Definition for Mehitabel, version 1.0 of the SHML DTD and ICADD 2.2. Please use the following formal public identifier (FPI) to identify it:
        "-//Sun Microsystems//LPD SHML 1.0 SGML Document Access//EN"

ISO Character Entity Sets

The following character entity file is declared in the char.mod module:

"ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML"

A more extensive treatment of ISO Character Entities is also available on this site.

Revision Information

Wed, 24 Sep 1997 $Id: @(#)shml10.dtd 1.5 - 97/09/24 17:36:20 altheim $ XML-compatible DTD comments
Thu, 18 Sep 1997 $Id: @(#)shml10.dtd 1.4 - 97/09/16 14:21:07 altheim $ Initial public announcement

You can obtain specific revision details by grepping the DTD with "^#", or a list of elements and attributes with "^;".

You can view the structure of the Mehitabel DTD thanks to the perl programs dtd2html and dtddiff, part of Earl Hood's perlSGML package. A HTML 3.2 to SHML 1.0 differences file is also available, but unfortunately the dtddiff program is unable to discern content models that differ only in element ordering, so the differences appear greater than actuality. Note also that many of the changes appear due to adding ID, CLASS and internationalization attributes on many elements. If I get a chance, I'll try editing a better copy that delineates these changes.

Bug Reports and Feedback

Both the DTD and this page are a work in progress. Please report any bugs, omissions, suggestions, etc. to <>.


Obligatory Legal Notice

Curator: Murray Altheim <>
Last Revised: Wed, Sept. 24, 1997