XML ссылается на идентификатор с # или нет?

Мой текущий проект состоит из писем, которые находятся в коллекциях. У каждой коллекции есть идентификатор, и буквы относятся к этим идентификаторам. Исходя из "мира TEI", я подумал, что это будет лучшим решением для этого с #:

<collection xml:id="1"/>

<letter is_included_in="#1"/>

Я подумал, что это обычный и лучший способ сделать это, а также предусмотрено стандартом XPointer.

Недавно я узнал, что в XML-схеме есть тип dt: type = "idref" для обработки ссылок на идентификаторы. Таким образом, это было бы без #.

Итак, я немного запутался прямо сейчас.

Что является лучшей практикой здесь и наиболее семантическим способом обработки ссылок на идентификаторы внутри одного XML-документа? Или, другими словами: как бы любой читатель, не знакомый с человеком, который не знает мою схему XMl, ожидал, что я это сделаю?

1 ответ

Решение

Если вы разрабатываете простую схему ссылок, в которой нет необходимости создавать под-ссылки, я рекомендую вам не предварять все ссылки хеш-символами (#):

<collection xml:id="c1"/>

<letter is_included_in="c1"/>
  • На базовом уровне стандартная практика заключается в том, чтобы идентификаторы и ссылки точно совпадали; @id а также @idref соответствовать точно.
  • Исторически, # в ссылке используется перед ссылкой на подраздел. (Смотрите конкретно широко распространенное стандартное использование хеш-меток в HTML @href ввести идентификатор фрагмента для ссылки на именованную часть страницы HTML.) TEI и XPointer построены на этом соглашении в URI.
  • Спецификация XML требует, чтобы значения атрибута типа ID соответствовали продукции Name, что запрещает идентификаторам начинаться с цифры.
Другие вопросы по тегам