Re: Choosing namespaces syntax for MathML

Re: the example

        http://xml-maiden.com/temp/namespaces.xhtml

David Carlisle <davidc@nag.co.uk> writes:

> Paul
...
> It's wrong to assume that it won't be read but it's just as wrong to
> assume it will be read, as the XML spec makes this optional (and as far
> as I know IE is the only common browser which _does_ read external DTD
> files in its default configuration).

I agree.  There are signs, however, that down the road a content
provider _may_ be able to rely upon standard full-service user agents
having memorized certain formal public identifiers and system
identifiers when used in a DOCTYPE declaration.  That's different from
reading an external dtd.

The issue White Lynx raised that I was responding to, however, is
still different: reading an internal subset provided in a DOCTYPE
declaration.  But now I'm told that "xmlns" is a special case.

> Actually in the case of MathML if you don't use the XSL stylesheet and
> instead use MathPlayer's auto-detection of XHTML+MathML I don't think
> the issue arises as the document is not parsed by msxml in that case,

Yes.  The content-type is application/xhtml+xml, and, in fact, I viewed
the content before responding to White Lynx (Math Player version 2.0b,
I think). 

> but otherwise if the dcument is sent with an XML mime type to IE, it
> will be parsed by MSXML3 and you will be hit by this. (This is why IE
> can't read the XHTML DTD for example, the XHTML+MathML DTD does not
> default the namespaces for this reason).

Might it make sense in future (X)HTML specs to add a name like
"externalNameSpace" to the attribute list for the root "html" element?
It might be a way better to get the attention of user agents (given
their record with internal declaration subsets).

Illustration:  instead of the lines:

   <!DOCTYPE html PUBLIC
     "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
     "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"
   [<!ATTLIST math xmlns
   CDATA #FIXED "http://www.w3.org/1998/Math/MathML" display CDATA "block">]>
   <html xmlns="http://www.w3.org/1999/xhtml">

hypothetically one might then use something like these lines:

   <!DOCTYPE html PUBLIC
     "-//W3C//DTD XHTML 3.1 plus MathML 4.0//EN"
     "http://www.w3.org/Math/DTD/mathml4/xhtml-math.dtd"
   <html
     xmlns="http://www.w3.org/1999/xhtml"
     externalNameSpace="math http://www.w3.org/1998/Math/MathML">

Of course, this approach would require no overlaps in element names
among different namespaces, which I think is reasonable for html
as a special case of XML.

                                    -- Bill

Received on Thursday, 14 December 2006 17:03:29 UTC