Generic Usenet Account
2011-04-06 23:25:08 UTC
Hello,
I have arrived at the following ABNF for URN by combining RFC 2141 and
RFC 5234. Can someone kindly let me know whether I got it right?
Thanks,
Gus
----------------------------------------------------------------------------------------------------------------------------------------------
URN = "urn:" NID ":" NSS
NID = LET-NUM [ 1*31LET-NUM-HYP ]
LET-NUM-HYP = UPPER / LOWER / NUMBER / "-"
LET-NUM = UPPER / LOWER / NUMBER
UPPER = "A" / "B" / "C" / "D" / "E" / "F" / "G" / "H" /
"I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" /
"Q" / "R" / "S" / "T" / "U" / "V" / "W" / "X" /
"Y" / "Z"
LOWER = "a" / "b" / "c" / "d" / "e" / "f" / "g" / "h" /
"i" / "j" / "k" / "l" / "m" / "n" / "o" / "p" /
"q" / "r" / "s" / "t" / "u" / "v" / "w" / "x" /
"y" / "z"
NUMBER = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" /
"8" / "9"
NSS = 1*URNchars
URNchars = TRANS / "%" HEX HEX
TRANS = UPPER / LOWER / NUMBER / other / reserved
HEX = NUMBER / "A" / "B" / "C" / "D" / "E" / "F" /
"a" / "b" / "c" / "d" / "e" / "f"
other = "(" / ")" / "+" / "," / "-" / "." /
":" / "=" / "@" / ";" / "$" /
"_" / "!" / "*" / "'"
I have arrived at the following ABNF for URN by combining RFC 2141 and
RFC 5234. Can someone kindly let me know whether I got it right?
Thanks,
Gus
----------------------------------------------------------------------------------------------------------------------------------------------
URN = "urn:" NID ":" NSS
NID = LET-NUM [ 1*31LET-NUM-HYP ]
LET-NUM-HYP = UPPER / LOWER / NUMBER / "-"
LET-NUM = UPPER / LOWER / NUMBER
UPPER = "A" / "B" / "C" / "D" / "E" / "F" / "G" / "H" /
"I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" /
"Q" / "R" / "S" / "T" / "U" / "V" / "W" / "X" /
"Y" / "Z"
LOWER = "a" / "b" / "c" / "d" / "e" / "f" / "g" / "h" /
"i" / "j" / "k" / "l" / "m" / "n" / "o" / "p" /
"q" / "r" / "s" / "t" / "u" / "v" / "w" / "x" /
"y" / "z"
NUMBER = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" /
"8" / "9"
NSS = 1*URNchars
URNchars = TRANS / "%" HEX HEX
TRANS = UPPER / LOWER / NUMBER / other / reserved
HEX = NUMBER / "A" / "B" / "C" / "D" / "E" / "F" /
"a" / "b" / "c" / "d" / "e" / "f"
other = "(" / ")" / "+" / "," / "-" / "." /
":" / "=" / "@" / ";" / "$" /
"_" / "!" / "*" / "'"