OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xri message

[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]