Re: Comments on draft-saintandre-xmpp-uri-04.txt

Hi Martin,

My apologies for the delayed reply. I have attempted to incorporate all 
of your feedback and have prepared an interim version of the document, 
which is available here:

http://www.jabber.org/~stpeter/ietf/draft-saintandre-xmpp-uri-05-pre1.txt

I would appreciate it if you or others would take a look at this document
and let me know if I have misinterpreted any of the feedback received.

Several further questions and observations below...

On Tue, Aug 24, 2004 at 09:55:12AM +0900, Martin Duerst wrote:
> 
> >> >   While the "?" character is allowed in the resource identifier portion
> >> >   of an XMPP address (according to [XMPP-CORE]), that character can be
> >> >   used as a delimiter between the jid and the query parts of an xmpp:
> >> >   URI; therefore, any instances of the "?" character in the resource
> >> >   identifier portion of an XMPP address that is generated or processed
> >> >   as an xmpp: URI MUST be escaped as "%3F" (as described in Section
> >> >   2.2.5 of [URL-GUIDE]).
> >>
> >> That's a good example of a case that should be expressed in the syntax
> >> rules. The syntax has to express the exact form of the URI as it is
> >> allowed to appear, not some intention about the parts that go into the
> >> URI. So as an example, if the syntax for the resource identifier in
> >> xmpp were something simple like
> >>      resource = *( 'a' / 'b' / 'c' / '?' )
> >> then the syntax for the resource component in the xmpp scheme syntax
> >> would have to read:
> >>      resource = *( 'a' / 'b' / 'c' / '%3F' / '%3f' )
> >> or so.

On re-reading rfc2396bis, it seems to me that this is handled by the rule 
contained in Section 2.2:

   If data for a URI component would conflict with a reserved 
   character's purpose as a delimiter, then the conflicting data 
   must be percent-encoded before forming the URI.

So rather than describing specifically how to handle the "?" character,
it seems best to include this general rule (since it might also apply
to any other character that might conflict with a reserved character).
Does this seem right?

> >> >2.3  Generation of XMPP URIs
> >> >
> >> >
> >> >   When generating an XMPP URI, the generating application SHOULD follow
> >> >   these steps:
> >>
> >> I'm probably repeating myself, but having these steps is in clear
> >> conflict with the
> >>     "xmpp:" jid [ "?" query ]
> >> syntax rule above. Either there is an actual jid in there, or it's
> >> something else that is the result of some processing. No shortcuts
> >> allowed :-(.
> >
> >That text was discussed on the XMPP WG list in order to assist
> >implementers. But I don't understand your comment; the intent is that,
> >yes, there is an "actual JID" in there. Are you saying that Step 1
> >("Obtain XMPP address (JID).") is not right because a real JID would
> >already have passed Steps 2 and 3?
> 
> No. What I'm saying is that section 2.3 is basically right, but that
> the syntax of the xmpp URI has to be changed to include percent-encoding,
> in order to correctly reflect the result of the process described in 2.3.

I've attempted to do so in the preview release referred to at the 
beginning of this message, but in trying to do justice to rfc2396bis 
I may have strayed further from the text of the previous version, so 
corrections are welcome.

> >> >   2.  Perform [IDNA] translation against the JID (in the form of a
> >> >       UTF-8 string).
> >>
> >> What IDNA translation?
> >
> >I think that people on the XMPP WG list meant "conversion" rather than
> >"translation".
> 
> Way not clear enough. IDNA describes various 'conversions' or 
> 'translations',
> or whatever you call it, in different directions, and these also have
> some flags that affect what actually happens.

In fact it seems to me that IDNA conversion would refer only to the 
internationalized domain labels that make up an internationalized domain
name. Certainly it would not apply to the JID as a whole, and the flags
defined for IDNA are not appropriate for an XMPP node identifier or an
XMPP resource identifier. So I am not sure that any reference to the 
ToASCII conversion operation is appropriate here, or that it is truly
necessary to define how the UTF-8-to-ASCII conversion occurs. However,
if it *is* necessary, then we *could* define the conversion by means of
the ToASCII operation (though we would need to describe how the various
parts of a JID can be understood as labels in the IDNA sense), or we
could define the conversion by other means. How have other URI scheme
specifications dealt with this matter?

Thanks again.

Peter

-- 
Peter Saint-Andre
Jabber Software Foundation
http://www.jabber.org/people/stpeter.php

Received on Friday, 3 September 2004 00:20:37 UTC