Peter asked me to on-post this.
The standard way to stick a MIME type into a system identifier is
given as part of HyTime '97. First we have a notation declaration
(which is really only for documentation, so you don't need it
if you don't want it).
<!NOTATION mimetype PUBLIC "-//IETF/RFC1521//NOTATIONÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ FSISM PORTABLE
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ MIME Content Type//EN"><!-- Refer RFC 1700 -->
This notation declaration allows us to use "mimetype" in
Formal System Identifiers, which are system identifiers with
little pseudo-start tags giving the notation used in the rest
of the string. So we can then declare the notation "gif"
to be the mime type "image/gif" by
<!NOTATION gif SYSTEM "<mimetype>Content-Type=image/gif">
A full form for this with both public and system identifiers
would be
<!NOTATION gif PUBLIC
"ISBN 0-7923-91::Graphic Notation//NOTATIONÊ
Compuserve Graphic Interchange Format//EN"Ê
"<mimetype>Content-Type=image/gif">
Presumably you could also stick other MIME parameters in also,
after semicolons, e.g.
<!notation multipart-mime
PUBLIC "-//IETF/RFC1521//NOTATIONÊMIME Content Type Multipart Mixed//EN"
SYSTEM '<mimetype>Content-Type=multipart/mixed;boundary="--@QQQ@--"'>
(There is also provision of a notation called simply "mime", which
can be used for burrowing into a MIME file for specific parts. )
Rick Jelliffe