Представление перекрестных ссылок основано на XML-представлении закладок.
Есть два типа перекрестных ссылок.
Перекрестная ссылка на точку, которая помечает специфическую позицию в тексте и определяется одним атрибутом <text:reference-mark>.
Перекрестная ссылка на диапазон, которая помечает диапазон символов в тексте и определяется двумя элементами: <text:reference-mark-start> для пометки начала диапазона и <text:reference-mark-end> для пометки конца диапазона.
Каждая перекрестная ссылка идентифицируется по ее имени, которое должно быть уникальным. В перекрестных ссылках на диапазон начальный и конечный элементы должны использовать одинаковое имя перекрестной ссылки.
Перекрестная ссылка на точку
Элемент <text:reference-mark> определяет перекрестную ссылку на точку.
Перекрестная ссылка на диапазон
Элементы <text:reference-mark-start> и <text:reference-mark-end> определяют перекрестную ссылку на диапазон.
В схеме OpenDocument три элемента используются для представления перекрестных ссылок вместо одного, потому что перекрестные ссылки, представленные как один элемент XML:
не поддерживают перекрывающиеся перекрестные ссылки;
плохо взаимодействует с другими элементами.
Рассмотрим следующий пример.
Пример - Перекрывающиеся перекрестные ссылки на диапазон:
Пример показывает две перекрестные ссылки, которые покрывают следующий текст:
перекрестная ссылка "first" | "This is an example of a sentence" |
перекрестная ссылка "second" | "example of a sentence with overlapping references." |
Эта перекрывающая структура не может быть представлена с использованием одного элемента перекрестной ссылки, чтобы содержать тот текст, на который ссылаются. Точно также перекрестные ссылки, охватывающие несколько абзацев, создают такую же ситуацию, как и два перекрывающих XML-элемента. Получается, что в пределах текста, на который организована ссылка, есть метки начала или конца, но не обе.