Bridging XML/HTTP

The following is a proposal to attempt to solve the problem of how
arbitrary XML documents can specify aspects of their transfer over
HTTP.  Currently (AFAIK), the only widely deployed XML DTD that enjoys
this capability is XHTML 1.0. It does this via the META tag,
specifically the HTTP-EQUIV attribute. For example; 

<html> 
<head><meta http-equiv="pragma" content="no-cache"/></head> 
<body> ... </body> 
</html> 

Rather than try and develop a new mechanism, I suggest we try to
encourage DTD authors who need it, to reuse HTML.  Also, one
mechanism is likely preferable to language specific ones, as it
allows web servers to handle this generically for any text/xml or
application/xml content.  For example, in responding to a HEAD (and
per RFC 2616 sec 9.4, "SHOULD"), it becomes straightforward for the
server to extract the HTTP headers from any content.  However, this
does require a heuristic about where to find these tags since they
won't be in the same place in the document;

- if the DTD has a place for metadata (eg. HTML HEAD, SVG METADATA)
  - then the META tag will be added to its content model
- otherwise
  - the META tag will be added to the content model of the root
    element

It should also be suggested that the METAs come "first" so as to
minimize the work the server has to do to respond to a HEAD (in
the case of large bodies).  In the case of an existing place
for metadata, I would just suggest that the METAs SHOULD be placed
as close to the "beginning" (in the serialized document sense, not
a DOM sense) as possible.

For example, with SVG, we would add html:meta to the content
model for metadata, so we could say;

<svg> 
<metadata> 
<html:meta xmlns:html="http://www.w3.org/1999/xhtml"
html:http-equiv="pragma" html:content="no-cache"/> 
</metadata> 
</svg> 

Thoughts?

MB

Received on Friday, 24 March 2000 11:40:39 UTC