Roy T. Fielding fielding@ebuilt.com
Fri, 15 Jun 2001 21:09:32 -0700

> I presume that the opaque_part production is a more-or-less explicit 
> "placeholder" to allow for future scheme-specific URI syntax definitions. So 
> one could presumably define a bnf that "plugs in to" the <opaque_part> 
> production and would parse "soap://example.com"-like stuff (that appears
> after the "scheme:" in the URI), but it doesn't seem to be presently defined
> (unless there's some more-recent-than-rfc2396 doc that specifies such).

It exists to support schemes that, for one (lame) reason or another, were
defined with a syntax that does not allow relative forms.  While the RFC
allows such schemes, the implication of using them is that you don't
want anyone to reuse code that already exists to parse the components
of a URI in a common way.  For some schemes, that is actually appropriate.

Another way to think about it, or at least another point to consider, is
that stubborn software developers like me often refuse to implement URI
schemes that are designed to make our lives harder than they need to be.
A good software architect will take that into consideration when designing
a new application protocol.