Re: Accept-xmlns

Etan Wexler <ewexler@stickdog.com> wrote:

> > Accept-xmlns: http://www.w3.org/1999/xhtml;q=1.0,
> > http://www.w3.org/2000/svg;q=0.9,
> > http://www.w3.org/1998/Math/MathML;q=0.7
> 
> From a syntactic perspective, that just doesn't work. The would-be
> parameters are parts of the various URIs. One solution is to use delimiter
> characters:
> 
> Accept-xmlns: <http://www.w3.org/1999/xhtml>;q=1.0,
>   <http://www.w3.org/2000/svg>;q=0.9,
>   <http://www.w3.org/1998/Math/MathML>;q=0.7

Rather than reinventing the wheel, I'd recommend to have a look at
the Internet Draft "Registration of xmlns Media Feature Tag", at:

    http://www.ietf.org/internet-drafts/draft-stlaurent-feature-xmlns-03.txt

> I prefer the second form, but I believe that we can be still briefer while
> losing no functionality:
> 
> Accept-xmlns: xhtml;q=1.0, svg;q=0.9, MathML;q=0.7
> 
> As I imagine things, the IANA will maintain a registry of namespace tokens
> for easy use in content negotiation and delivery.

Personally I don't think it's likely.

> Rather than extending HTTP until it tears at the seams, I think that we
> should rely more on Composite Capabilties/Preferences Profile (CC/PP). I
> admit that I've barely studied CC/PP, but it seems like a more comprehensive
> solution.
> 
> How, for instance, can a user agent ask for particular mixtures of namespace
> while avoiding other mixtures? A user agent might handle XHTML containing
> MathML and SVG containing SMIL, but not handle XHTML containing SVG.

With xmlns media feature tag, it would be something like:

    Accept-Features: (|
        (& (xmlns="http://www.w3.org/1999/xhtml")
           (xmlns="http://www.w3.org/1998/Math/MathML"))
        (& (xmlns="http://www.w3.org/2000/svg")
           (xmlns="http://www.w3.org/2001/SMIL20/"))
        (! (& (xmlns="http://www.w3.org/1999/xhtml")
              (xmlns="http://www.w3.org/2000/svg")))
        )

although this doesn't indicate which one is the host language, i.e.
it doesn't distinguish XHTML containing SVG and SVG containing XHTML.
There's no definitive solution for that, but if that distinction is
really necessary, you could try something like:

    Accept-Features: (|
        (& (xmlns="http://www.w3.org/1999/xhtml")
           (xmlns="http://www.w3.org/1998/Math/MathML")
           (type="application/xhtml+xml"))
        (& (xmlns="http://www.w3.org/2000/svg")
           (xmlns="http://www.w3.org/2001/SMIL20/")
           (type="image/svg+xml"))
        (! (& (xmlns="http://www.w3.org/1999/xhtml")
              (xmlns="http://www.w3.org/2000/svg")
              (type="application/xhtml+xml")))
        )

assuming that XHTML containing SVG would be sent as 'application/xhtml+xml'
and SVG containing XHTML won't be sent as that media type.

(Caveat: syntax in RFC 2295, which defines the Accept-Features header,
 is not quite consistent with RFC 2533, and the category of RFC 2295
 is "Experimental".)

As you see it, this could quickly become overly complex to be put into
an HTTP header, and people might want to have a look at another
approach like CC/PP.  On the other hand if we try to solve too
fine-grained things, the whole negotiation process would become
too complex and costly, and people are likely to just give up
doing negotiation.  

> (And where would be appropriate to discuss these issues? www-tag?)

I was under the impression that the TAG issue nsMediaType-3 originally
covered these issues, but when that issue was subsumed by another
issue and later broken into smaller issues, those might have fallen
into a crack ...

Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium

Received on Friday, 18 April 2003 02:26:36 UTC