Отношения с ДИТА

Я пытаюсь создать связь между набором концептуальных документов. Итак, учитывая три документа «A», «B» и «C», я бы хотел, чтобы каждый из них отображал что-то вроде следующего:

A ...

Связанные понятия

  • B
  • C

По какой-то причине не работает следующее:

<reltable>
    <relrow>
        <relcell>
            <topicgroup collection-type="family">
                <topicref href="topics/a.dita" type="concept"/>
                <topicref href="topics/b.dita" type="concept"/>
                <topicref href="topics/c.dita" type="concept"/>
            </topicgroup>
        </relcell>
    </relrow>
</reltable>

Следующее работает, но это, безусловно, не может быть правильным:

<reltable>
    <relrow>
        <relcell>
            <topicgroup collection-type="family">
                <topicref href="topics/a.dita" type="concept"/>
                <topicref href="topics/b.dita" type="concept"/>
                <topicref href="topics/c.dita" type="concept"/>
            </topicgroup>
        </relcell>
        <relcell>
            <topicgroup collection-type="family">
                <topicref href="topics/a.dita" type="concept"/>
                <topicref href="topics/b.dita" type="concept"/>
                <topicref href="topics/c.dita" type="concept"/>
            </topicgroup>
        </relcell>
    </relrow>
</reltable>

Я использую DITA Converter с открытым исходным кодом от XMLMind.


person Lea Hayes    schedule 14.01.2013    source источник


Ответы (4)


Вы можете прочитать спецификации DITA 1.2 о reltables:

http://docs.oasis-open.org/dita/v1.2/os/spec/langref/reltable.html#reltable

спецификации также содержат пример. Спецификации говорят что-то вроде:

На выходе должны быть добавлены ссылки на темы, находящиеся в той же строке, но не в одной ячейке.

Поэтому ваши темы должны быть в разных ячейках и в одной строке.

person Radu Coravu    schedule 14.01.2013
comment
Эта страница спецификации говорит, хотя и не обязательно в той же ячейке. - person Lea Hayes; 14.01.2013

Обратите внимание, что DITA Open Toolkit не имеет указанного ограничения, и ваш первый код будет работать нормально.

Однако вы можете использовать атрибут @collection-type вне контекста таблицы отношений. Это должно работать даже с инструментом DITA Converter, если инструмент поддерживает спецификацию DITA.

Вы не указываете, является ли ваш результат разделами онлайн-справки или PDF-файлом. Если вы создаете разделы справки, вы можете включить этот код в свою навигационную карту:

<topicgroup collection-type="family" toc="no">
    <topicref href="topics/a.dita" type="concept"/>
    <topicref href="topics/b.dita" type="concept"/>
    <topicref href="topics/c.dita" type="concept"/>
</topicgroup>

В результате будут созданы ссылки между темами, но новый экземпляр тем не будет отображаться в навигации.

Конечно, если эти три темы уже являются единственными дочерними элементами родительского узла в навигации, вы можете просто добавить атрибут @collection-type к родительскому узлу.

person Shane Taylor    schedule 07.03.2013

Поскольку преобразователь DITAC имеет это ограничение, я бы посоветовал сообщить об этом в DITAC как об ошибке. Тем не менее, вы также можете создать относительную таблицу, которая выглядит примерно так, чтобы она работала в DITAC.

<reltable>
    <relrow>
       <relcell>
           <topicref href="topics/a.dita" type="concept"/>
        </relcell>
        <relcell>
            <topicref href="topics/b.dita" type="concept"/>
        </relcell> 
        <relcell>
            <topicref href="topics/c.dita" type="concept"/>
     </relrow>
</reltable>

В DITA-OT все 3 темы будут указывать друг на друга и сортироваться как концептуальные темы. То же самое должно работать и в DITAC. Атрибут @collection-type вообще не нужен.

С точки зрения семантики я предпочитаю видеть свои отношения в относительной таблице, которая выражается через атрибуты @collection-type в элементах, чтобы мне было очевидно, что происходит.

ХТН.

person JulioV    schedule 07.03.2013

Похоже, что на самом деле это досадное ограничение инструмента DITA Converter от XML Mind:

Создание ссылок

Атрибут collection-type, каким бы ни было его значение, внутри связанного элемента игнорируется.

Ссылка: http://www.xmlmind.com/ditac/_distrib/doc/manual/limitations.html

person Lea Hayes    schedule 14.01.2013