Url: FileLikeRelativeUrl AbsoluteUrl NonRelativeUrl RelativeUrl Url ::= FileLikeRelativeUrl | AbsoluteUrl | NonRelativeUrl | RelativeUrl no referencesFileLikeRelativeScheme: file FileLikeRelativeScheme ::= 'file' referenced by: FileLikeRelativeUrl RelativeUrl: Path ? Query # Fragment RelativeUrl ::= Path? ( '?' Query )? ( '#' Fragment )? referenced by: AbsoluteUrl FileLikeRelativeUrl Url IPV6Addr: H16 : : H16 : H16 LS32 IPV6Addr ::= ( ( H16 ':' )* ':' )? ( H16 ':' )* ( H16 | LS32 ) referenced by: Host LS32: DECIMAL_BYTE . DECIMAL_BYTE . DECIMAL_BYTE . DECIMAL_BYTE LS32 ::= DECIMAL_BYTE '.' DECIMAL_BYTE '.' DECIMAL_BYTE '.' DECIMAL_BYTE referenced by: IPV6Addr RelativeScheme: ftp gopher https http wss ws RelativeScheme ::= 'ftp' | 'gopher' | 'https' | 'http' | 'wss' | 'ws' referenced by: AbsoluteUrl NonRelativeUrl: Scheme : Data ? Query # Fragment NonRelativeUrl ::= Scheme ':' Data ( '?' Query )? ( '#' Fragment )? referenced by: Url FileLikeRelativeUrl: FileLikeRelativeScheme : [a-z] [A-Z] : | / RelativeUrl / [a-z] [A-Z] | / RelativeUrl / / Host / RelativeUrl FileLikeRelativeScheme : / / Host / RelativeUrl FileLikeRelativeUrl ::= FileLikeRelativeScheme ':' [a-zA-Z] [:|] '/'? RelativeUrl | '/'* [a-zA-Z] '|' '/'? RelativeUrl | '/' '/' Host '/' RelativeUrl | FileLikeRelativeScheme ':' ( '/' '/' Host )? '/'* RelativeUrl referenced by: Url AbsoluteUrl: RelativeScheme : / \ / \ Authority Host : Port / \ RelativeUrl RelativeScheme : RelativeUrl AbsoluteUrl ::= ( RelativeScheme ':' )? [/\] [/\]+ Authority? Host ( ':' Port )? [/\]? RelativeUrl | RelativeScheme ':' RelativeUrl referenced by: Url Authority: [^#/:?@\] : [^#/?@\] @ Authority ::= [^/\?#@:]* ( ':' [^/\?#@]* )? '@' referenced by: AbsoluteUrl Host: [ IPV6Addr ] [^#/:?\] Host ::= '[' IPV6Addr ']' | [^:/\?#]* referenced by: AbsoluteUrl FileLikeRelativeUrl H16: [0-9] [A-F] [a-f] [0-9] [A-F] [a-f] [0-9] [A-F] [a-f] [0-9] [A-F] [a-f] H16 ::= [0-9A-Fa-f] [0-9A-Fa-f]? [0-9A-Fa-f]? [0-9A-Fa-f]? referenced by: IPV6Addr DECIMAL_BYTE: [0-2] [0-9] [0-9] DECIMAL_BYTE ::= [0-2]? [0-9]? [0-9] referenced by: LS32 Port: [^#/?\] Port ::= [^/\?#]* referenced by: AbsoluteUrl Path: [^#/?\] / \ [^#/?\] Path ::= ( [^/\?#]* [/\] )* [^/\?#]* referenced by: RelativeUrl Scheme: - + . [a-z] Scheme ::= [-+.a-z]+ referenced by: NonRelativeUrl Query: [^#] Query ::= [^#]* referenced by: NonRelativeUrl RelativeUrl Fragment: . Fragment ::= .* referenced by: NonRelativeUrl RelativeUrl Data: [^#?] Data ::= [^?#]* referenced by: NonRelativeUrl   ... generated by Railroad Diagram Generator R R