Re: Why DOCTYPE Declarations for XHTML?

Murray Altheim wrote:

> "W. Eliot Kimber" wrote:
> > Murray Altheim wrote:
> [...]
> > The pain to which I refer is the pain resulting from the use of a
> > facility that only gives the illusion of doing what is really wanted,
> > such that things that people think are being said or enforced are not
> > being said and are not enforceable.
> 
> We are limiting our design to validating (as according to the XML definition
> of same) the markup structure of a document instance according to the best
> ability of establishing a class of documents named "XHTML". It's what was
> in the toolkit.

I'm not objecting to enabling validation. I'm only objecting to the
requirement that conforming XHTML documents must use a particular form
of DOCTYPE declaration (or even have a doctype declaration at all).

That is, the issue of being able to do validation and the issue of
knowing without ambiguity whether or not a given document claims to be
an XHTML document are two separate issues.  

That is, a document claims to conform to a type. You then have the
option of validating the document against the rules of that type. Using
a set of DTD declarations is part of that validation (but not all of
it). 
 
> > But that's exactly my point: DOCTYPE declarations *do not declare
> > types*. I don't know what part of *no* people don't get about this.
> 
> Well, perhaps what you are calling a type and what others are calling
> a type are different. It's intuitively obvious to many people that a
> set of markup declarations called a DTD and defined in a prose spec
> that outlines the semantic intentions of the designer, all called a
> "markup language" or "document type" has some value. 

Yes, but what's important here is the *prose spec*. The markup
declarations are secondary, in part because they can't convey all the
rules of the type and in part because using only XML 1.0 facilities,
there is no defined way to tightly bind the declarations to the type
definition nor is there a way to prevent the declaration of element
types that are not specified by the prose spec *and detect that this has
been done* using XML validation facilities.

Obviously an application can impose additional constraints, such as "no
internal subset", but any validation of those constraints will be
application-specific, not using some standardized mechanism.

> >                        and as you well know (being to my knowledge part
> > > of the reason you left the XML WG), the emperor doesn't like PIs. We've
> > > been told repeatedly to avoid use of PIs for anything fundamental.
> >
> > I wasn't aware that Tim B-L's aversion was to PIs in general. So what?
> > Then take the namespace approach and use an attribute of the document
> > element to do the same thing.
> 
> To do what? Declare what? With what tool support?

It's not a question of tool support--no matter what you do today a
XHTML-specific tool will have to build in the type-binding validation
(that is, it will have to check whether or not there is an internal
subset and whether or not the URI of the externatl subset matches that
required by the XHTML spec). It's no different if you require that it
check the value of a name space URI and ignore the DOCTYPE declaration
(should there be one).

What is different is that you then allow document authors choice in how
they choose structure their documents.

> > You do have an alternative: a namespace use declaration with a meaning
> > defined by the XHTML spec.
> 
> And that would make XHTML different from every other XML markup language.

No, I think it would make it consistent with many markup languages. The
only difference between a namespace declaration and an architecture use
declaration is the explicit ability to bind an architecture to a set of
architectural DTD declarations.  

I also point out that architectural processing *is currently
implemented* through SAXARCH, so it's not like there's no tools support
for architectures, just that it's not yet in IE5 (as far as I know).
 
> > Just because XML provides the optional feature of DOCTYPE declarations
> > doesn't mean that XHTML is obligated to require their use or impart any
> > special meaning to their use when there are other was to get what you
> > want which are reliable.
> 
> Such as? Supported by what tools? Something that given a cold day in
> hell would be accepted by the W3C? If we don't use validation via DTD
> we have no acceptable means to establish a document type at all.

That's my point: *you have no means* provided by XML 1.0. Therefore you
(and all other standardized XML applications) must do something else.
The only question is what? XHTML is, by it's nature, a groundbreaking
application (just as HTML was). 

> Perhaps you can clarify this for me: I have thousands of valid SGML
> documents that conform to document type definitions, using DOCTYPE
> declarations. 

No, you have thousands of documents that conform to document type
*declarations* that may or may not conform to document type
*definitions*. The conformance to the latter *is not in any way*
indicated by conformance to the former. Likewise, failure to conform to
the former does not necessarily indicate failure to conform to the
latter.

                     This is of major value to both myself and the
company
> I work for. 

But one of the things that I've been ranting about for several years now
is that the value enterprises like your own *think* they get from DTD
validation is illusory because it can be worked around in any number of
easy ways. 

 I'm trying very hard to understand your point of view (and
> you know I respect your intellect and appreciate your patience), but
> the above statement is completely counterintuitive to my experience,
> which is that I've seen *great value* in validating my document's markup
> structure based on DOCTYPEs and DTDs. And continue to do so with XML.

I understand that, in a highly controlled environment such as Sun, you
can, sometimes, get the *effect* of control by dictating the use of
particular declaration sets. But I've talked to a lot of people from big
companies who hear my rant and then come up and say "yes, you're right,
we really have no control over what happens. We documents that come in
to the production group that validate to their DTDs but the DTDs have
been modified in some way and we can't detect it until it's too late".
That's my point. You get the illusion of control, management things
things are in hand when in fact they are not. This creates a false
reality that will eventually lead to pain.  

My guess is that if you poke around in Sun you will find instances of
local groups extending or modifying the centrally-mandated DTDs to meet
their local requirements in a way that breaks other processes. This is
especially true if you are using Docbook which was explicitly designed
to be flexible.  This is my point.
 
> > It is perhaps the most serious failing of SGML (and by inheritance, XML)
> > that it does not provide a markup declaration for binding documents to
> > true type definitions. But it doesn't and we have to work around that.
> > But pretending that DOCTYPE declarations do something they don't is not
> > the right workaround.
> 
> I'm not pretending anything. I *am* able to validate the markup structure,
> and this does have value to me and my company. 

My point is that the value you actually have is much less than the value
you think you have. That's all. Of course validation is important, but
validation *by itself* isn't enough. 

                                                  Our documents are
authored
> by intelligent, trained writers who sometimes abuse markup but on the
> whole do a great job in creating content that *is* according to type.

Then you work for a company that is, in my experience, exceptional in
this regard. That is to the credit of the SGML and XML champions at Sun,
but it is the exception and not the rule.

> And until something comes along that is acceptable to my company and the
> vendors that both support us and we support, that's it.

And of course I've made it my life's work to get vendors and users to
understand why something like architectures is a hard requirement....
:-)
 
> Well, I'm sorry then. I'm not trying to be boneheaded about this but we
> either have a religious difference or you're asking me to do something
> that is both politically and technically not feasible. 

It is certainly technically feasable, but policitally, I don't
know--I'll leave that up to y'all. I'm only trying to provide some
technical knowledge that you can use to make an appropriate decision.

                                                           Both I and a
lot
> of other people find XML validation valuable. If adding an AF declaration
> to the DTD were all that was needed, I'd be happy to oblige. 

But not to the beginning of the DTD, to the document, whether or not
there's a DTD.

Since the
> beginning of XHTML m12n there's been an empty XHTML module named "XHTML
> 1.1 Base Architecture" whose content looks like this:

This is cool. Keep it in. 

Cheers,

E.

Received on Tuesday, 18 January 2000 12:04:41 UTC