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: RE: [xri] GCS chars and star in XRI authority resolution


Here is an updated ABNF that merges all of the discussion from the mail list into the proposed ABNF for XRI 1.1.  I haven't reviewed it completely, but it does validate and seems to capture all of the latest thinking.


  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

  XRI-authority   = ( gcs-char [  [ "!" / "*" ] nz-segment ] ) / xref-authority

  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 / "-" / "." / "_" / "~"

> -----Original Message-----
> From: Lindelsee, Mike [mailto:mlindels@visa.com]
> Sent: Monday, August 23, 2004 4:10 PM
> To: xri@lists.oasis-open.org
> Subject: RE: [xri] GCS chars and star in XRI authority resolution
> 
> 
> I'll create an ABNF that merges all of the latest discussion 
> into the ABNF on the page mentioned below.  Not sure where to 
> put it, so I'll just send it out to the list as a starting point.
> 
> It seems to me that we still have to make some decisions on a 
> few of the issues (e.g., xri authorities aligining with 
> 2386bis authorities) before we can consider the ABNF finalized.
> 
> Mike
> 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]