Re: [XHTML] document type

Greetings Shane, perhaps we can kill more than one bird with one stone 
here.  It would be really nice to simplify all the gorp at the front of a 
document that an author has to create as well as adding some features.

I am taken by your suggestion of using @version and enhancing it to allow 
CURIEs. I rather like the idea of being able to specify :

<html xmlns="http://www.w3.org/1999/xhtml" @version="XHTML10T">

rather than:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">

The CURIE XHTML11 would allow the original gorp, and anything else that 
might be of interest to processors to be determined.

It is a pity we cannot make it simpler still, unless someone has a good 
idea. . .

I know you have told me that at present the vale of @version is fixed but 
I am trying to explore the possibilities. Perhaps it could only be 
introduced with a future version of XHTML.

@version could also take a list of CURIEs which would satisfy one of my 
goals stated at the start of this thread.

Regards, Roland



From:
Shane McCarron <shane@aptest.com>
To:
Roland Merrick/UK/IBM@IBMGB
Cc:
public-xhtml2@w3.org
Date:
26/06/2008 15:33
Subject:
Re: [XHTML] document type



Roland started this thread, but I had been typing for some time already. 
As I see if there are a variety of requirements for supporting document 
announcement:
1.      Authors want to declare what language (or language version) they 
wrote their document using to help ensure portability and consistency. 
Roland points out there is an ancillary requirement to say that a document 
is valid in a variety of (presumably similar) languages.
2.      Tool vendors need to know what version was used so they can 
correctly process the contents in the face of evolving languages.
3.      User agents use announcement as a way of deciding which parser / 
rendering engine to use.
4.      Validation technologies cannot validate a document without knowing 
its type.
5.      Servers use a combination of request headers and document types to 
determine what version of a document to send to a requestor.
In some of our most recent specifications, we have stepped away from 
requiring a DOCTYPE statement at the top of every document instance.  The 
reasons for this are confusing, but seem to be based on the assumption 
that the traditional use of DOCTYPE is tied to DTDs, and DTDs are bad.

I could argue that the DOCTYPE declaration is just that, a declaration (as 
in positive assertive statement), and in the real world satisfies all of 
the above requirements.  But let's take a step back.  Is there a way we 
can satisfy these requirements using some other mechanism?  And is it 
possible to do it at the protocol level, the document level, and possibly 
the DOM level?  Let's explore some possibilities:

Use DOCTYPE as it stands
DOCTYPE is a declaration mechanism, and it clearly conveys exactly what 
grammar was used when creating a document.  However, it is somewhat 
archaic, and there is a perception that it is tied to DTDs.  Is this a bad 
thing?  Maybe.  Also, if your markup language doesn't have a DTD (XHTML 2 
might not) then it is misleading at best.
Use DOCTYPE but do something clever
We could continue to use the DOCTYPE, but have the SYSTEM portion point to 
a generic URI instead of to a URI that maps directly to a DTD.  Then a 
client that actually CARED about the SYSTEM portion (validators are the 
only ones I know of) could use content negotiation to get a schema they 
understand (e.g., XML DTD, XML Schema, RelaxNG, NVDL... whatever). 
Alternately, we could use DOCTYPE but tell people who care to rely upon an 
RDF document to map the PUBLIC identifier to an appropriate schema.
Use attributes on the root element
It is possible that a parser could drill down into the root element of a 
document to ascertain its document type.  All XHTML family document types 
(except XHTML 1.0) have a version attribute on the html element.  Each has 
a unique value.  The values are sort of arbitrary right now, but they are 
unique.  A clever combination of the default namespace declaration and the 
version attribute could help a processor know exactly what it was 
processing.  We could even add @version to XHTML 1.0 when we update it in 
the near future.  Finally, I suppose we could extend the definition of 
@version to address some of the other requirements. 
Use attributes and the magic of RDF
Permit CURIEs in the @version attribute on the root element, and define a 
mapping from some specific CURIE vocabulary space we control to grammars 
we define.  Allows others to define their own mappings. This might be a 
better solution than just using @version as it stands.
Use media type / meta to indicate type and subtype via profile parameter
The application/xhtml+xml media type can have a profile parameter.  We 
could use that parameter to specify one or more grammars that a document 
adheres to.  We could use the same values in the meta http-equiv in the 
head so that documents not coming via HTTP could still be interpreted.  I 
think this is a mistake because it defers the decision to a higher level 
protocol, and lost of our customers won't have access to that.
-- 
Shane P. McCarron                          Phone: +1 763 786-8160 x120
Managing Director                            Fax: +1 763 786-8180
ApTest Minnesota                            Inet: shane@aptest.com


-- 
Shane P. McCarron                          Phone: +1 763 786-8160 x120
Managing Director                            Fax: +1 763 786-8180
ApTest Minnesota                            Inet: shane@aptest.com









Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Received on Thursday, 31 July 2008 15:36:41 UTC