RFC3986 compliance (definition of "//" )
Closed this issue · 0 comments
In order to complement #50, I want to point out another non-compliance of the RFC3986 by the tango naming convention.
Tango defines that //
is associated to the optional protocol part, while the RFC3986 states that it is part of the optional authority (the host:port) part. In other words, the tango naming convention would closer to RFC3986 compliance if it defined:
[protocol:][//host:port/]device_name[/attribute][->property][#dbase=xx]
instead of
[protocol://][host:port/]device_name[/attribute][->property][#dbase=xx]
In practice this means that the device named "tango://foo:1234/a/b/c" could be referred as
a/b/c
(if omitting both the protocol and database info)
or tango:a/b/c
(if omitting the optional database info)
or //foo:1234/a/b/c
(if omitting the protocol info)
but never tango://a/b/c
(because, according to RFC3986, '//' indicates the beginning of the authority component)
If compliance with RFC3986 is important, this could be addressed in the Tango10 specification.
(note: this is related but independent from what I described in #50)