【问题标题】:Use of prodname metadata in DITA?在 DITA 中使用 prodname 元数据?
【发布时间】:2013-02-12 14:07:24
【问题描述】:

DITA 元数据中 prodinfo 元素内的元数据元素的预期用途是什么?

每个prodinfo(可以是多个)只有一个prodname,然后里面可以有组件、品牌、系列等。

prodinfo 本身似乎是为了表明它对特定产品的适用性,您可以有多个表明它适用于多种产品。

但是在 prodinfo 中,您有组件、品牌、系列等,在我看来,这似乎是通用元数据 - 即表示该主题适用于更广泛主题的元数据。但如果它在特定的 prodinfo 元素内,则没有任何意义。例如,如果我将组件解释为表明主题涉及产品的特定组件,例如引擎,那么它可能会被用来找到可以重复用于多个不同产品的主题,所有这些都以类似的方式描述引擎组件。

例子:

    <metadata>
        <prodinfo>
            <prodname>SuperMachine</prodname>
            <vrmlist>
                <vrm version="1.0"/>
            </vrmlist>
            <component>power pack</component>
            <component>engine</component>
            <brand>ACME</brand>
            <series>Z32</series>
        </prodinfo>
    </metadata>

在这种情况下,我认为组件元数据不应附加到特定产品。那么这些部分打算如何在 DITA 元数据中使用呢?

【问题讨论】:

    标签: dita


    【解决方案1】:

    就我们的目的而言,描述产品元数据的 prodinfo 方式可以正常工作。我们的情况如下:我们有一个软件产品(服务器应用程序),它以我们自己的品牌销售,但也以不同品牌的 OEM 模式销售。

    那么我们接下来要做的是:

    <metadata>
        <prodinfo>
            <prodname>OurBigServerSoftware</prodname>
            <vrmlist>
                <vrm version="10"/>
            </vrmlist>
            <component>PDF rendering engine</component>
            <brand>OEM Partner 1</brand>
        </prodinfo>
    </metadata>
    

    这允许我们将主题标记为特定于单个 OEM 合作伙伴,但也可以过滤产品名称本身(因为 OEM 合作伙伴的捆绑解决方案通常由产品组合组成)。

    我想这只是在说它确实有意义的场景:-)

    【讨论】:

    • 好的,情况略有不同。我指的是可用于检索可重用内容的元数据,而不是过滤。所以基本上,一个主题可以是关于柴油发动机的,例如,目前用于一种产品,并且它可能是可重复使用的,因此另一个用户可能想要搜索关于柴油发动机的主题。但该元数据不应与特定的产品元数据绑定(就像在 prodinfo 中一样)。
    • 我明白了。我可能是错的,但是您能否在柴油发动机主题中添加第二个 prodinfo,以表明它对卡车 A 的柴油发动机(版本 X,品牌 Y,...)以及卡车 B 都有效(版本 Z,品牌 Y,...)?
    • 好吧,我想到了这一点,但这正是问题的要旨——这似乎违反直觉且重复:如果 prodinfo 是针对独特产品的,而组件元数据是通用的 ("柴油发动机”,如在可重复使用的材料中),那么在每个 prodinfo 中重复该元数据是没有意义的。对于许多主题,使用 prodinfo 甚至根本没有意义,如果它们是非常可重用的主题,那么组件甚至都不可用。
    【解决方案2】:

    关于这个问题的一个想法是依靠地图来定义特定上下文的元数据。然后,您可以在主题中使用 @conkeyref 从地图中提取,以便在输出中生成您在该点描述的正确结构的正确信息。这样您就不会在单个主题中使用多个元素来显示主题的适用性。

    在 keydef 映射中,您甚至可以创建所需的所有关联元数据并过滤掉不适用的键,以便将正确的元数据应用于主题。

    【讨论】:

    • 有趣的点,但恐怕不是我真正想要的。我忘了提到我说的是 CMS 中的用法,并且没有 conkeyref 或 keyref 支持,因为尚不支持 DITA 1.2。另外,我要质疑的是 prodinfo 元素在主题上下文中用于检索的有用性,尤其是组件子元素。如果它用于检索,那么从地图中获取它是不可能的。但也许这就是问题所在 - prodinfo 可用于 ditamap 和主题,而它们在 ditamap 中有意义,但在主题中可能没有......
    • 虽然不是我想要的答案,但我会奖励你有趣的想法的赏金,因为如果我等待我想要的答案,赏金将过期:-)
    【解决方案3】:

    我们使用地图文件中的 prodname 来确定要在转换场景中使用的 PDF 模板。每个产品都有自己的外观和感觉,prodname 值决定使用哪种格式。我们使用品牌、系列等(也在地图文件中指定)作为值来生成 PDF 的第一页。

    不确定这是否是最好的方法,但对我们来说效果很好。

    【讨论】:

    • 我同意,这种用法是有道理的,在这方面我对 prodinfo 没有太多问题,尽管我仍然看不到组件子元素的含义在这种情况下。问题更多在于它在主题中的用处。最初的情况是我们想要一个组件的元数据元素,并在 prodinfo 中找到它。但这对我们来说没有意义,因为我们认为组件是一种元数据类型,用于标记某些东西,而不管该特定组件属于什么产品......
    • Nathalie,你的回答可能不完全是我的问题的答案,但它指向了我在第一条评论中评论的方向——prodinfo 最适合作为 ditamap 元数据,并且可能有模型本身固有的结构问题(如组件元数据)。由于缺乏反对这一点的证据,我会认为我对您的答案的解释:-) 并将其标记为已回答。
    • 我对 DITA 还是比较陌生,所以我对它没有足够的信心来完全回答问题和辩论问题。然而。 :) 但我想分享我们如何在地图中使用 prodinfo,我很高兴它有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 2017-06-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    相关资源
    最近更新 更多