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, что запрещает идентификаторам начинаться с цифры.