Re: OMITTAG specifications in element declarations

<lee@sq.com> recently wrote:
>It is a red herring to say that putting [omitted tag specs] in XML would help
>compatibility: if you have OMITTAG YES in your DTD, you need to
>run SPAM or otherwise ensure that there are no omitted tags.

You're raising the red herring, Lee.  If the SGML declaration says OMITTAG
NO, then you can't omit tags.  "OMITTAG YES" is not what's under discussion;
that's a closed issue--not permitted for XML.  As Eve has pointed out;
"OMITTAG" goes in the SGML declaration, not in the DTD.  What does go in
the DTD (in element type declarations therein) is the "omitted tag
specification" parameter: a pair of MINUS and/or "O" specifiers, which
_when OMITTAG YES is specified_ govern whether an apparently omitted
tag detected by the standard algorithm is to be regarded as an error
or not.

>XML applictions won't handle your text otherwise, so it doesn't
>matter if they wil handle the DTD or not.

Nonsense.  in SGML tags _never_ must be omitted just because they are
_permitted_ to be omitted.  No one is suggesting that XML documents
might have omitted tags.  The "OMITTAG NO" in the _SGML_ declaration
will enforce that.

>So no strange and spurious tokens in XML.  They are not needed for
>SGML conformance, they do not add to the expressive power of the
>language, they add slightly to language complexity, and not having them
>will actually _help_ interoperability with SGML.

Consider the following scenario:  You deal with a lot of documents
that at some point in their lives use omittag in their processing,
so you need a DTD that can be used with "OMITTAG YES".  At some point
in the processing, you normalize the documents.  Thereafter, the
documents can be processed with "OMITTAG YES" or "OMITTAG NO".
SGML does not require that you maintain two versions of your DTD,
one for processing with "OMITTAG YES" and the other for processing
with "OMITTAG NO"--it simply says that if you process with "OMITTAG
NO", the omitted tag specification parameters will be ignored.

You are saying that under these circumstances it's better to have
to maintain two versions of your DTD.  I say, nonsense!

If XML uses the same interpretation of the omitted tag specification
parameter that SGML does, then your XML-only users will never need to
put that parameter in their declarations.  And your SGML "OMITTAG YES"
users will only need one DTD.  And all your apparently easily confused
XML-only users need be told is that if they see those hyphens and
letter Os after the element type name in a DTD that comes from a
fancy-SGML shop, its because SGML has some tricks they're using but
your SGML-only users aren't, and they can ignore that part of the
declaration.  I don't think the XML-only users are so easily confused
that they can't handle that.  C'mon.

Dave Peterson