Daniel,
Thank you for your comments on my draft. My travel schedule made it
impossible for me to unable to respond to your comments immediately; I
appologize for the delay. I deal with your comment on the DTD and
prolog first and then address the correspondences and the content-type.
You point, that I confused DTD and prolog, is on the mark. After
reviewing your comments and 8879 I agree that the distinction must be
made and I propose a solution slightly different than the one you
propose.
The essence of my proposal is to replace the "dtd" parameter with "prolog"
and to require both prolog and instance. The reason I suggest this
approach is practical, various implementations treat these two document
elements differently. Having them as distinct body parts enables the
unpacker to present them to the SGML application in whatever form is
needed. Thus the example you gave
<!DOCTYPE T SYSTEM "t.dtd" [
<!ENTITY fig1 SYSTEM "foo.ps" postscript>
]>
<T>blah blah blah <figure graphic=fig1> blah blah blah</T>
I propose to split into two parts, the prolog:
<!DOCTYPE T SYSTEM "t.dtd" [
<!ENTITY fig1 SYSTEM "foo.ps" postscript>
]>
and the instance:
<T>blah blah blah <figure graphic=fig1> blah blah blah</T>
The definition of sgml-part becomes
sgml-part := "declaration" / "prolog" / "instance"
/ "fosi" / extension-token
where prolog and instance are required. I re-arranged the terms for
pedagogic reasons. As you pointed out dtd is redundant and I suggest
we eliminate it as a parameter; it only creates problems, what if
its value is incorrect, the corresponding body part is not present and
not referenced, and other usual human errors. My suggestion above
reflects this opinion.
For the extended example you provided I have provided an abbreviated
MIME message at the end of my response.
As to using text/sgml or application/sgml, I chose application to keep
within expressed boundaries others in the MIME community have
suggested. Namely, that text be reserved for very simple things. The
discussion of the text/enriched subtype explicitly strove to keep the
markup features to a minimum. Yes, SGML data is character data but
the marked up text, the dtds, that are covered by the subtype are not
for casual reading. Indeed, I, for one, don't want to have the DTDs
and prologs (perhaps more complicated than the one we use here)
displayed on my screen. If you have text that is not marked up it can
be sent as an external entity with Content-Type: text.
The correspondences you provided I like, it may be easier to explain
waht is happening using your table. I summarize it, with my own
suggestions, below.
SGML: MIME:
notation (type) Content-Type:
SYSTEM indentifier Content-ID:
data entity Body Part
marked up text Application/SGML
document Multipart/SGML
SDIF: MIME:
data stream Multipart/SDIF
entity name Content-Description: <entity name>
public-text Application/SDIF; public=<public id>
cross-reference Application/SDIF; cross-reference=content-id
Do you find my proposal acceptable? Do you have any other
suggestions, especially ones that would make the language more
understandable.
Thanks.../Ed
Daniel W. Connolly's extended example (abbreviated):
Content-ID: Contents
<10024(_dot_)761615492(_dot_)3(_at_)ulua> SGML document
<10024(_dot_)761615492(_dot_)4(_at_)ulua> SGML marked up text
<10024(_dot_)761615492(_dot_)5(_at_)ulua> prolog
<10024(_dot_)761615492(_dot_)6(_at_)ulua> dtd
<10024(_dot_)761615492(_dot_)7(_at_)ulua> declaration
<10024(_dot_)761615492(_dot_)8(_at_)ulua> instance
Content-Type: multipart/x-sgml; boundary="----- =_aaaaaaaaaa1";
prolog="10024(_dot_)761615492(_dot_)5(_at_)ulua";
instance="10024.761615492.8";
declaration="10024(_dot_)761615492(_dot_)7(_at_)ulua"
Content-ID: <10024(_dot_)761615492(_dot_)3(_at_)ulua>
------- =_aaaaaaaaaa1
Content-Type: application/x-sgml; charset="us-ascii"
Content-ID: <10024(_dot_)761615492(_dot_)4(_at_)ulua>
Content-Description: comments on MIME/SGML as html
Content-Transfer-Encoding: quoted-printable
<HEAD>
<TITLE>Comments on MIME/SGML</TITLE>
</HEAD>
<BODY>
<H1>Proposed Changes for MIME representation of SGML
</H1>
...
</BODY>
------- =_aaaaaaaaaa1
Content-Type: application/x-sgml; charset="us-ascii"
Content-ID: <10024(_dot_)761615492(_dot_)5(_at_)ulua>
Content-Description: SGML document prolog
<!DOCTYPE HTML SYSTEM "10024(_dot_)761615492(_dot_)6(_at_)ulua"
-- PUBLIC "-//IETF/DRAFT/ietf-iiir-html-01" @@ -- [
<!-- $Id$ -->
<!ENTITY web-node SYSTEM "10024(_dot_)761615492(_dot_)4(_at_)ulua">
]>
------- =_aaaaaaaaaa1
Content-Type: application/x-sgml; charset="us-ascii"
Content-ID: <10024(_dot_)761615492(_dot_)8(_at_)ulua>
Content-Description: SGML document wrapper
<HTML>
&web-node;
</HTML>
------- =_aaaaaaaaaa1
Content-Type: application/x-sgml; charset="us-ascii"
Content-ID: <10024(_dot_)761615492(_dot_)6(_at_)ulua>
Content-Description: HTML dtd
Content-Transfer-Encoding: quoted-printable
<!-- Jul 1 93 -->
<!-- Regarding clause 6.1, SGML Document:
...
<!-- end: -->
------- =_aaaaaaaaaa1
Content-Type: application/x-sgml; charset="us-ascii"
Content-ID: <10024(_dot_)761615492(_dot_)7(_at_)ulua>
Content-Description: HTML SGML declaration
<!SGML "ISO 8879:1986"
--
Document Type Definition for the HyperText Markup Language
as used by the World Wide Web application (HTML DTD).
NOTE: This is a definition of HTML with respect to
SGML, and assumes an understanding of SGML terms.
If you find bugs in this DTD or find it does not compile
under some circumstances please mail
www-bug(_at_)info(_dot_)cern(_dot_)ch
--
CHARSET
...
APPINFO NONE
------- =_aaaaaaaaaa1--