与DITA的关系

时间:2013-01-14 00:21:58

标签: xml documentation dita

我正在尝试在一系列概念文档之间建立关系。因此,给定三个文档“A”,“B”和“C”,我希望它们各自显示如下内容:

  

A ...

     

相关概念

     
      
  •   
  • 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>

我正在使用XMLMind的开源DITA Converter

4 个答案:

答案 0 :(得分:6)

您可以阅读有关reltables的DITA 1.2规范:

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

规格也包含一个例子。 规格说如下:

在输出时,应将链接添加到同一行但不在同一单元格中的主题。

因此,您的主题需要位于不同的单元格中,并且位于同一行。

答案 1 :(得分:3)

请注意,DITA Open Toolkit没有规定的限制,您的第一个代码可以正常工作。

但是,您可以在关系表的上下文之外使用@ collection-type属性。这应该适用于DITA转换器工具,只要该工具支持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属性添加到父节点即可。

答案 2 :(得分:3)

由于DITAC转换器具有该限制,我建议将其报告为DITAC的错误。也就是说,你也可以采取创建一个看起来像这样的reltable的位置,以便在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中,所有这三个主题都将相互指向并作为概念主题进行排序。它应该在DITAC中起作用。根本不需要@ collection-type属性。

从语义上讲,我更喜欢看到我的关系在一个可通过元素中的@ collection-type属性表达的reltable中,所以对我来说很明显是什么。

HTH。

答案 3 :(得分:1)

这似乎是XML Mind的DITA转换器工具的一个不幸的限制:

  

生成链接

     

属性集合类型,无论其值如何,都在reltable元素中被忽略。

参考:http://www.xmlmind.com/ditac/_distrib/doc/manual/limitations.html