Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.5 KiB

  1. URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
  2. absoluteURI = scheme ":" ( hier_part | opaque_part )
  3. relativeURI = ( net_path | abs_path | rel_path ) [ "?" query ]
  4. hier_part = ( net_path | abs_path ) [ "?" query ]
  5. opaque_part = uric_no_slash *uric
  6. uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
  7. "&" | "=" | "+" | "$" | ","
  8. net_path = "//" authority [ abs_path ]
  9. abs_path = "/" path_segments
  10. rel_path = rel_segment [ abs_path ]
  11. rel_segment = 1*( unreserved | escaped |
  12. ";" | "@" | "&" | "=" | "+" | "$" | "," )
  13. scheme = alpha *( alpha | digit | "+" | "-" | "." )
  14. authority = server | reg_name
  15. reg_name = 1*( unreserved | escaped | "$" | "," |
  16. ";" | ":" | "@" | "&" | "=" | "+" )
  17. server = [ [ userinfo "@" ] hostport ]
  18. userinfo = *( unreserved | escaped |
  19. ";" | ":" | "&" | "=" | "+" | "$" | "," )
  20. hostport = host [ ":" port ]
  21. host = hostname | IPv4address
  22. hostname = *( domainlabel "." ) toplabel [ "." ]
  23. domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum
  24. toplabel = alpha | alpha *( alphanum | "-" ) alphanum
  25. IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit
  26. port = *digit
  27. path = [ abs_path | opaque_part ]
  28. path_segments = segment *( "/" segment )
  29. segment = *pchar *( ";" param )
  30. param = *pchar
  31. pchar = unreserved | escaped |
  32. ":" | "@" | "&" | "=" | "+" | "$" | ","
  33. query = *uric
  34. fragment = *uric
  35. uric = reserved | unreserved | escaped
  36. reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
  37. "$" | ","
  38. unreserved = alphanum | mark
  39. mark = "-" | "_" | "." | "!" | "~" | "*" | "'" |
  40. "(" | ")"
  41. escaped = "%" hex hex
  42. hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |
  43. "a" | "b" | "c" | "d" | "e" | "f"
  44. alphanum = alpha | digit
  45. alpha = lowalpha | upalpha
  46. lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" |
  47. "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" |
  48. "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
  49. upalpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" |
  50. "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" |
  51. "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
  52. digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
  53. "8" | "9"