[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Proposed 1.1 ABNF for discussion on 8/24 XRI Editor's SC call
Per Mike's email, I updated the wiki page at
http://xrixdi.idcommons.net/moin.cgi/Xri1dot1ProposedAbnf#preview with
Mike's proposed ABNF. I made two tweaks - eached marked with ### in the copy
below. The first one corrected the oversight Gabe pointed out that we forgot
the optional "//" that is now legal for XRI authorities to align with
RFC2396bis authorities. The second is the proposal to only allow "!" after a
GCS char because the GCS char is a proxy for "*".
This ABNF will be discussed in excruciating detail on the XRI Editor's SC
call Tuesday 8/24 4pm Pacific / Wed. 8/25 8am Japan. All XRI TC members and
observers are invited. The dial-in info is:
Toll Free Access Number: 1-800-514-2819 (Domestic US)
International Access Number: +973-935-8596
Participant Code: 716233
=Drummond
XRI = absolute-xri / relative-xri
absolute-xri = ["xri:"] global-path [ "?" xri-query ]
[ "#" xri-fragment ]
global-path = authority-path [ local-path ]
local-path = "/" relative-path
relative-path = xri-segment * ( "/" xri-segment ) [ "?" xri-query ]
[ "#" xri-fragment ]
relative-xri = local-path / relative-path
xri-value = global-path / local-path / relative-path
authority-path = XRI-authority / IRI-authority
### NOTE ADDITION OF "//" AND BREAKOUT OF GCS AUTHORITY TYPE
XRI-authority = [ "//" ] ( GCS-authority / xref-authority )
### NOTE ONLY "!" ALLOWED AFTER GCS CHAR AND ONLY WITH NZ-SEGMENT
GCS-authority = gcs-char [ [ "!" ] nz-segment ]
gcs-char = "=" / "@" / "+" / "!" / "$"
xref-authority = xref *( ( "!" / "*" ) nz-segment )
xref = "(" ( xri-value / IRI ) ")"
IRI-authority = "//" iauthority
xri-segment = sub-segment *( ( "!" / "*" ) sub-segment )
nz-segment = nz-sub-segment *( ( "!" / "*" ) nz-sub-segment )
sub-segment = ( *xri-pchar / xref )
nz-sub-segment = ( 1*xri-pchar / xref )
xri-pchar = xri-unreserved / pct-encoded / xri-sub-delims
xri-query = [ xref ] *( xri-pchar / iprivate / "/" / "?"
/ ":" / "[" / "]" / "@" / "(" / ")" / "!" / "$"
/ "*" / "+" / "=" )
xri-fragment = [ xref ] * ( xri-pchar / "/" / "?"
/ ":" / "[" / "]" / "@" / "(" / ")" / "!" / "$"
/ "*" / "+" / "=" )
xri-reserved = xri-gen-delims / xri-sub-delims
xri-gen-delims = "/" / "?" / "#" / "[" / "]" / "@" / "("
/ ")" / "!" / "*" / "$" / "+" / "="
xri-sub-delims = "&" / ":" / ";" / "," / "'"
xri-unreserved = unreserved / ucschar
IRI = scheme ":" ihier-part [ "?" iquery ]
[ "#" ifragment ]
scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
ihier-part = "//" iauthority ipath-abempty
/ ipath-abs
/ ipath-rootless
/ ipath-empty
iauthority = [ iuserinfo "@" ] ihost [ ":" port ]
iuserinfo = *( iunreserved / pct-encoded / sub-delims / ":" )
ihost = IP-literal / IPv4address / ireg-name
IP-literal = "[" ( IPv6address / IPvFuture ) "]"
IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )
IPv6address = 6( h16 ":" ) ls32
/ "::" 5( h16 ":" ) ls32
/ [ h16 ] "::" 4( h16 ":" ) ls32
/ [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
/ [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
/ [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32
/ [ *4( h16 ":" ) h16 ] "::" ls32
/ [ *5( h16 ":" ) h16 ] "::" h16
/ [ *6( h16 ":" ) h16 ] "::"
ls32 = ( h16 ":" h16 ) / IPv4address
h16 = 1*4HEXDIG
IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet
dec-octet = DIGIT ; 0-9
/ %x31-39 DIGIT ; 10-99
/ "1" 2DIGIT ; 100-199
/ "2" %x30-34 DIGIT ; 200-249
/ "25" %x30-35 ; 250-255
ireg-name = *( iunreserved / pct-encoded / sub-delims )
port = *DIGIT
ipath-abempty = *( "/" isegment )
ipath-abs = "/" [ isegment-nz *( "/" isegment ) ]
ipath-rootless = isegment-nz *( "/" isegment )
ipath-empty = 0<ipchar>
isegment = *ipchar
isegment-nz = 1*ipchar
iquery = *( ipchar / iprivate / "/" / "?" )
iprivate = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD
ifragment = *( ipchar / "/" / "?" )
ipchar = iunreserved / pct-encoded / sub-delims / ":"
/ "@"
iunreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" / ucschar
pct-encoded = "%" HEXDIG HEXDIG
ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF /
%x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD /
%x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD /
%x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD /
%xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD /
%xD0000-DFFFD / %xE1000-EFFFD
reserved = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]