Я ожидаю, что это будет означать «текущий каталог», который, конечно, не имеет смысла на другой машине или даже в другое время, но это вызывает ошибку схемы в Xerces, и я думаю, что это неправильно.
Нет, это не так. Файловый протокол состоит из двух частей: хоста и пути. Если вы опустите хост, слеш все еще требуется. Твой это просто путь. file:///., вероятно, будет приемлемо, но не то, что вы ищете. Файловый протокол полностью не знает о текущем каталоге. Это расширится до file://localhost/., что будет означать каталог или файл с именем . в текущей системе, как отметил cHao в комментариях.
file:///.
file://localhost/.
.
Обратите внимание, что при пропуске хоста вы не пропускаете косую черту («file: ///foo.txt» - это нормально, а «file: //foo.txt» - нет, хотя некоторые интерпретаторы справляются с последним) 1010 * Reference *
Обратите внимание, что при пропуске хоста вы не пропускаете косую черту («file: ///foo.txt» - это нормально, а «file: //foo.txt» - нет, хотя некоторые интерпретаторы справляются с последним)
1010 * Reference *