首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关键字与DITA中的数据元数据?

关键字与DITA中的数据元数据?
EN

Stack Overflow用户
提问于 2013-02-27 06:46:08
回答 4查看 1.5K关注 0票数 8

在DITA中有两种“通用”类型的元数据标记,即data元素和keyword元素。当然,还有其他的that,但显然它应该很快就会被弃用,这个名字表明它是一种最后的手段。

因此,关键字似乎非常类似于web应用程序中的标签,即通常用于“大众分类法”的标签。但是,数据和关键字之间的确切区别是什么,什么时候应该使用哪一个?

EN

回答 4

Stack Overflow用户

发布于 2013-02-28 21:03:48

<data>元素主要用于专门化,因此直接使用它可能并不明智。<keyword>元素更好。

这一点:

<metadata> <keywords> <keyword>red</keyword> <keyword>green</keyword> <keyword>blue</keyword> </keywords> </metadata>

将在DITA-OT XHTML转换中呈现:

如果你想添加标签,我会考虑使用主题模式映射,它允许你包含一个受控值的列表。

如果您专门化了@base@props属性,则可以对元数据进行更多的控制。在这里,我们有一个专用于@era@props属性。

然后,可以向主题中的元素或映射中的<topicref>元素添加@era属性。

代码语言:javascript
复制
<subjectdef keys="era_attributedef">
  <topicmeta>
  <navtitle>Era of production by decade and producer</navtitle>
</topicmeta>

 <subjectdef keys="producer">
     <hasInstance>
         <subjectdef keys="sixties">
             <subjectdef keys="verity_lambert"/>
             <subjectdef keys="john_wiles"/>
             <subjectdef keys="innes_lloyd"/>
             <subjectdef keys="peter_bryant"/>
             <subjectdef keys="derrick_sherwin"/>
         </subjectdef>

         <subjectdef keys="seventies">
             <subjectdef keys="barry_letts"/>
             <subjectdef keys="philip_hinchcliff"/>
             <subjectdef keys="graham_williams"/>
         </subjectdef>

         <subjectdef keys="eighties">
             <subjectdef keys="john_nathan-turner"/>
         </subjectdef>
     </hasInstance>
 </subjectdef>

代码语言:javascript
复制
<enumerationdef>
    <attributedef name="era"/>
    <subjectdef keyref="era_attributedef"/>
</enumerationdef>
票数 3
EN

Stack Overflow用户

发布于 2013-03-11 06:22:36

这里有点偏离轨道;关键字元素不是元数据元素。关键字元素是一个通用的文本元素,通常用于产品名称。我认为您可能想要在这里指定的元素是关键字元素。而且,您真的不想丢弃其他quite元素;它并没有被弃用,而且非常有用。

关键字元素

关键字元素可以在主题或地图级别使用。它包含一个主题词汇表中的术语列表,使用keyword或indexterm元素进行标记。关键字和indexterm元素被认为是元数据元素,它们应该根据介质的情况在输出中反映出来。indexterm元素通常生成索引;在XHTML输出中,关键字元素通常被添加到XHTML并用于搜索引擎优化。(这是DITA-OT的标准功能,尽管DITA-OT附带的免费PDF呈现引擎不会生成索引。)

数据元素

按原样使用,数据元素表示DITA主题或映射中的属性。以下是关键方面:

  • 属性的主题是包含数据元素的元素。如果该属性作为一个整体应用于主题,则它应位于topic prolog元素或指向该主题的topicref中的topicmeta元素中。data元素上的@ processors.
  • The属性是attribute
  • Reference的主标识符。可以通过几种不同的方式来表示该属性的值:使用@
  • elements

结构表示的另一资源(主题、图像、网络资源等)的@

  • 文本值,该结构由嵌套的data elements

组成

  • 您可以使用可选的标题元素为属性提供标签。

默认情况下,处理器会忽略数据元素的内容。但是,可以构建使用特定数据元素的内容进行格式化等操作的自定义处理。

作为专门化的基础,数据元素特别有用。它支持更精确的语义,以及特定元素的受控属性列表的枚举。如果您检查bookmap和learning & training专门化中使用的元数据元素,您可以看到许多将其用作专门化基础的示例。

有关一些具体的示例,请参阅data element topic in the DITA 1.2 specification

其他元元素

另一个metadata元素被设计为保存现有元数据元素似乎不适用的内容。它本质上包含一个名称和值对。您可以使用@name属性来命名属性,使用@content属性来保存值。

您应该在什么时候使用哪个特定元素?

  • 使用关键字元素指定应用于特定主题的索引项和关键字,尤其是在生成的输出中应使用关键字元素的内容时。
  • 使用data元素在DITA主题或DITA映射中嵌入属性,特别是作为帮助进行自定义处理或自动获取数据元素的属性,作为保存不存在语义元素的名称和值对的E244元素的基础。
票数 3
EN

Stack Overflow用户

发布于 2013-03-07 01:32:18

数据元素具有@href、@name和@value属性。

因此您可以定义构建所需的任何类型的属性。

代码语言:javascript
复制
<data name="currentTopNavSection" value="profil"/>

我有几个场景需要提供一些路径信息,这取决于我的文档的受众。为此,我可以使用数据元素。

代码语言:javascript
复制
<data audience="lifeg" name="active-audience" value="lifeg"/>

这使我可以在过滤文档时知道哪些是活跃的受众

另一个示例是附加特定于地图的javascript

我目前正在做一个webmap的专门化工作,其中我专门化了包括javascript和css的数据。

*更新2 *

数据元素可以是嵌套的。Eliot Kimber在一篇文章中解释了这一点。我不记得是哪一个了。其思想是,它可以表示属性的集合

代码语言:javascript
复制
   <data name="parent">
        <data name="chilproperty1" value="abc"/>
        <data name="chilproperty2" value="abc"/>
   </data>

这种结构对于专门化的目的非常有用。

在我的理解中,数据元素是不具体的。这是作者记录非常具体的需求的一种方式,不管是专门的还是非专业的。稍后在构建过程中可以很容易地使用xsl检索值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15100912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档