- From: John Aldridge <john.aldridge@informatix.co.uk>
- Date: Thu, 20 Jul 2000 10:29:44 +0100
- To: "Henrik Frystyk Nielsen" <frystyk@microsoft.com>, <xml-uri@w3.org>
At 09:24 19/07/00 -0700, Henrik Frystyk Nielsen wrote: > > I just skimmed RFC 2774, and I don't think it mandates the use of http > > URIs; so I take your statement to mean that, when an application is > > searching extension declarations for something it knows how to process, >it > > must use the comparison rules in RFC 2616 if it is looking for http URI > > names, and literal comparison otherwise. > >Nope, there is nothing specific to HTTP URIs in this. As I have mentioned >before, it just so happens that HTTP URIs use all aspects of the URI >syntax defined by RFC 2396 and so there is a 1:1 mapping between the >equality rules defined for HTTP URIs and URIs and RFC 2396. It is more for >historic reasons that anything else that those rules are explained in the >HTTP spec and not in the URI spec. > >There is also no "must" for an application consuming a URI used to >identify an extension to use any of these equality rules - the rules are > >* An application *generating* a name must follow the rules > from the space the name belongs to. > >* An application *consuming* a must at a minimum use case-sensitive > comparison but may apply specific URI scheme equality rules if it wants > to/knows about them. Sorry, I don't understand how this applies to this particular situation. Perhaps I'm being obtuse. Let me make the question a bit more explicit -- suppose I define an extension header, say: Req: "http://www.informatix.co.uk/headers/"; ns=15 15-getmd5: "yes" which is defined (by me, I control this URI space) to cause the web server to return an MD5 checksum of the resource, rather than it's body. Suppose a web server looks for this by doing a case sensitive string comparison with "http://www.informatix.co.uk/headers/" is it implementing the extension properly? Suppose it did a case sensitive string comparison with "http://WWW.INFORMATIX.CO.UK/headers/" instead. Would this be a correct implementation too? My reading of your second rule is that the web server is the application "consuming" the name, and that it must "at a minimum use case-sensitive comparison", so the answer to both these questions is "yes". Now suppose a web browser generates headers in these two forms when sending a request to the server. Are they both correct implementations? My reading of your first rule is that the web browser is the application generating the name, and it is not attempting associate different semantics with the two forms (it wants an MD5 checksum in both cases). So the answer, again, is "yes" to both cases. But now we have two "correct" implementations which do not interoperate, so I don't think this can be what you intended. Maybe what you intended is that a web server _must_ apply the applicable scheme specific normalisations before comparison when searching for extension headers. This means that a server cannot be written to process extension headers identified by a URI from a scheme it doesn't know about. That's might be acceptable for web servers, but... ...how does XSLT (actually XPath) compare two names? It can't apply scheme specific normalisations, because it may encounter names in namespaces with NSURIs from schemes which didn't exist when the XPath REC was published. -- Cheers, John
Received on Thursday, 20 July 2000 05:29:52 UTC