Почему новый URI (String arg) с arg = "s ::::::::::::: str" не генерирует исключение URISyntaxException во время выполнения? - PullRequest
0 голосов
/ 16 декабря 2018

Википедия определяет формат URI следующим образом (RFC 3986, раздел 3 (2005)):

URI = scheme:[//authority]path[?query][#fragment]

Непустая схема компонент, за которым следует двоеточие (:), , состоящее из последовательности символов, начинающихся с буквы и сопровождаемых любой комбинацией букв, цифр, плюс (+), точка (.) Или дефис (-).

Почему new URI("s:::::::::::::anytext") не генерирует исключение URISyntaxException?

Мне также просто интересно - что еще может быть «неожиданно» допустимым здесь?

ОК, любой компонент (кромедля протокола) может содержать любой символ (если у нас не более одного #), включая «;», «@» и «/» (ни один из них не требуется кодировать в процентах), объясняетсятот.

Но компонент протокола (схема) обязателен (?), И протокол должен быть отделен // от ЛЮБОГО другого последующего компонента, не так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...