Class RFC2396

java.lang.Object
org.apache.commons.vfs2.provider.RFC2396

final class RFC2396 extends Object
Helps deal with RFC 2396.

The RFC 2396 Collected BNF for URI from Appendix A:

     URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
     absoluteURI   = scheme ":" ( hier_part | opaque_part )
     relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]

     hier_part     = ( net_path | abs_path ) [ "?" query ]
     opaque_part   = uric_no_slash *uric

     uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
                     "invalid input: '&'" | "=" | "+" | "$" | ","

     net_path      = "//" authority [ abs_path ]
     abs_path      = "/"  path_segments
     rel_path      = rel_segment [ abs_path ]

     rel_segment   = 1*( unreserved | escaped |
                         ";" | "@" | "invalid input: '&'" | "=" | "+" | "$" | "," )

     scheme        = alpha *( alpha | digit | "+" | "-" | "." )

     authority     = server | reg_name

     reg_name      = 1*( unreserved | escaped | "$" | "," |
                         ";" | ":" | "@" | "invalid input: '&'" | "=" | "+" )

     server        = [ [ userinfo "@" ] hostport ]
     userinfo      = *( unreserved | escaped |
                        ";" | ":" | "invalid input: '&'" | "=" | "+" | "$" | "," )

     hostport      = host [ ":" port ]
     host          = hostname | IPv4address
     hostname      = *( domainlabel "." ) toplabel [ "." ]
     domainlabel   = alphanum | alphanum *( alphanum | "-" ) alphanum
     toplabel      = alpha | alpha *( alphanum | "-" ) alphanum
     IPv4address   = 1*digit "." 1*digit "." 1*digit "." 1*digit
     port          = *digit

     path          = [ abs_path | opaque_part ]
     path_segments = segment *( "/" segment )
     segment       = *pchar *( ";" param )
     param         = *pchar
     pchar         = unreserved | escaped |
                     ":" | "@" | "invalid input: '&'" | "=" | "+" | "$" | ","

     query         = *uric

     fragment      = *uric

     uric          = reserved | unreserved | escaped
     reserved      = ";" | "/" | "?" | ":" | "@" | "invalid input: '&'" | "=" | "+" |
                     "$" | ","
     unreserved    = alphanum | mark
     mark          = "-" | "_" | "." | "!" | "~" | "*" | "'" |
                     "(" | ")"

     escaped       = "%" hex hex
     hex           = digit | "A" | "B" | "C" | "D" | "E" | "F" |
                             "a" | "b" | "c" | "d" | "e" | "f"

     alphanum      = alpha | digit
     alpha         = lowalpha | upalpha

     lowalpha = "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"
     upalpha  = "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"
     digit    = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
                "8" | "9"
  • Field Details

    • MARK

      static final char[] MARK
    • DIGIT

      static final char[] DIGIT
    • LOWALPHA

      static final char[] LOWALPHA
    • UPALPHA

      static final char[] UPALPHA
    • ALPHA

      static final char[] ALPHA
    • ALPHANUM

      static final char[] ALPHANUM
    • RESERVED

      static final char[] RESERVED
    • UNRESERVED

      static final char[] UNRESERVED
    • USERINFO_UNESCAPED

      static final char[] USERINFO_UNESCAPED
  • Constructor Details

    • RFC2396

      private RFC2396()