Tracking module/version info (was Re: %flow and headers and address)

Earl Hood (ehood@isogen.com)
Tue, 01 Oct 1996 16:20:04 -0500


Message-Id: <199610012120.QAA16488@bonk.isogen.com>
To: Stuart Young <nakor@glasswings.com.au>
cc: Foteos Macrides <MACRIDES@SCI.WFBR.EDU>, pflynn@curia.ucc.ie,
Subject: Tracking module/version info (was Re: %flow and headers and address)
Date: Tue, 01 Oct 1996 16:20:04 -0500
From: Earl Hood <ehood@isogen.com>

(sorry if duplicate, the first one has not shown up)

> Basically what I mean is some way either in the DTD to make a validator 
> actually "know" what areas of the DTD have been used, and showing them, 
> or some form of validator that'll allow such a distinction.
> 
> It'd be useful to know that a page contains say, MSIE, Netscape, and HTML 
> 3.2 based code, by running it past a validator using said DTD. Apart from 
> the fact it vaildates, you know what declaration types are used, and can 
> treat the document accordingly.
> 
> This could also point out things like 'You are using HTML 1.0 code that 
> has been depreciated, along with HTML 3.2 code.', so you can be warned if 
> you are making a mistake.

What you ask for has broader implications.  And that is: How can one
track module/version information in a (SGML) document?  Ie.  How can
one determine what parts of a modularized DTD are in use, and what
version of the modularized components are in use?

Fortunately, there is a standard way.  What can be done is to utilize
archectitural forms functionality as defined by the corrected HyTime
standard and supported by Jim Clark's free SP software.

Architectural forms is a way to define meta-DTDs.  One can define
base architectures so DTDs can derive from them inorder to inherit
(reusable) characteristics defined in the base architectures.  It is
similiar to C++ (OO) programming where one defines classes of objects
and derives subclasses from them.

For this case, one can define a module/version meta-DTD to define a set
of attributes for elements in dervied DTDs to contain module/version
information for each element.  Then a (module/version) engine can
then inform the user of the different types of markup that is being
applied to a given SGML document.

Now, if architectural forms are "too heavy" for WWW browser developers
(even though they can use existing free software), then all that
is needed is to define a set of attributes for all HTML elements to
store version/module information.  The attributes can all be #FIXED,
so authors of HTML documents never have to deal with them since they
are predefined by the DTD developers.  WWW browser can then provide
module/version views of a document.

	--ewh