Когда мы будем выбирать Открытый идентификатор над системным идентификатором для поиска DTD файла?

1) FPI могут использоваться для идентификации файлов DTD. Поскольку, насколько я могу судить, FPI несколько похожи на URN, поскольку они однозначно идентифицируют ресурс (DTD файл), то почему мы не используем URN вместо FPI для поиска DTD? Другими словами, что делает FPI более эффективными при идентификации файлов DTD?

2) Я также не понимаю полезности FPI при поиске файлов DTD, на которые ссылаются. А именно, единственный синтаксический анализатор XML "хочет" из идентификаторов Public/System - это показать синтаксический анализатор, где найти ссылочный DTD файл. Поскольку URL-адрес делает работу по поиску файла великолепно, зачем нам когда-либо хотеть использовать FPI вместо URL?

3) Кроме того, как FPI помогает синтаксическому анализатору найти указанный DTD файл?

спасибо

+3
источник поделиться
1 ответ

Парсер должен знать FPI и как его решить. Обычно приложение использует так называемый файл каталога для интерпретации открытого идентификатора. Файл каталога будет в основном переводить открытый идентификатор в соответствующий системный идентификатор (URI).

См. также Публичные идентификаторы, системные идентификаторы и файлы каталога

FPI должен быть глобально уникальным, в то время как системный идентификатор потенциально может быть глобально уникальным, если он использует URL или URI. Поскольку системный идентификатор также может использовать путь к файловой системе или относительный спецификатор URL/URI, он не может гарантировать глобальную уникальность ресурса, который он идентифицирует в некотором контексте.

ИМХО, это актуально только для разработки стандартов. Для нормальной разработки приложений достаточно системных идентификаторов.

+3
источник

Посмотрите другие вопросы по меткам или Задайте вопрос