Subject: Additional syntax for URNs

From: [email-masked] (Dale R. Worley)
Date: Mon, 29 Sep 2014 12:03:22 -0400

A lot of URN syntax defintions involve the category "a segment of one
or more URN characters not containing a colon" as part of the NSS
definition.  Each definition has to redefine this category, because it
is not in RFC 2141.  So I'd like to propose this addition to the
syntax, for use by all future URN definitions:

   <urn-segment>  ::= 1*<nc-urn-chars>
   		  ; one or more URN NSS characters, excluding colon ":"

   <nc-urn-chars> ::= <nc-trans> | "%" <hex> <hex>

   <nc-trans>     ::= <upper> | <lower> | <number> | <nc-other> | <reserved>

   <hex>          ::= <number> | "A" | "B" | "C" | "D" | "E" | "F" |
                      "a" | "b" | "c" | "d" | "e" | "f"

   <nc-other>     ::= "(" | ")" | "+" | "," | "-" | "." |
                      "=" | "@" | ";" | "$" |
                      "_" | "!" | "*" | "'"

Unfortunately, this is almost but not completely the same as
<segment-nz-nc> in RFC 3986, but the latter allows "&" and "~", which
are not permitted in NSSs.

Dale