在DITA中有两种“通用”类型的元数据标记,即data元素和keyword元素。当然,还有其他的that,但显然它应该很快就会被弃用,这个名字表明它是一种最后的手段。
因此,关键字似乎非常类似于web应用程序中的标签,即通常用于“大众分类法”的标签。但是,数据和关键字之间的确切区别是什么,什么时候应该使用哪一个?
发布于 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属性。
<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>
<enumerationdef>
<attributedef name="era"/>
<subjectdef keyref="era_attributedef"/>
</enumerationdef>发布于 2013-03-11 06:22:36
这里有点偏离轨道;关键字元素不是元数据元素。关键字元素是一个通用的文本元素,通常用于产品名称。我认为您可能想要在这里指定的元素是关键字元素。而且,您真的不想丢弃其他quite元素;它并没有被弃用,而且非常有用。
关键字元素
关键字元素可以在主题或地图级别使用。它包含一个主题词汇表中的术语列表,使用keyword或indexterm元素进行标记。关键字和indexterm元素被认为是元数据元素,它们应该根据介质的情况在输出中反映出来。indexterm元素通常生成索引;在XHTML输出中,关键字元素通常被添加到XHTML并用于搜索引擎优化。(这是DITA-OT的标准功能,尽管DITA-OT附带的免费PDF呈现引擎不会生成索引。)
数据元素
按原样使用,数据元素表示DITA主题或映射中的属性。以下是关键方面:
结构表示的另一资源(主题、图像、网络资源等)的@
组成
默认情况下,处理器会忽略数据元素的内容。但是,可以构建使用特定数据元素的内容进行格式化等操作的自定义处理。
作为专门化的基础,数据元素特别有用。它支持更精确的语义,以及特定元素的受控属性列表的枚举。如果您检查bookmap和learning & training专门化中使用的元数据元素,您可以看到许多将其用作专门化基础的示例。
有关一些具体的示例,请参阅data element topic in the DITA 1.2 specification。
其他元元素
另一个metadata元素被设计为保存现有元数据元素似乎不适用的内容。它本质上包含一个名称和值对。您可以使用@name属性来命名属性,使用@content属性来保存值。
您应该在什么时候使用哪个特定元素?
发布于 2013-03-07 01:32:18
数据元素具有@href、@name和@value属性。
因此您可以定义构建所需的任何类型的属性。
<data name="currentTopNavSection" value="profil"/>我有几个场景需要提供一些路径信息,这取决于我的文档的受众。为此,我可以使用数据元素。
<data audience="lifeg" name="active-audience" value="lifeg"/>这使我可以在过滤文档时知道哪些是活跃的受众
另一个示例是附加特定于地图的javascript
我目前正在做一个webmap的专门化工作,其中我专门化了包括javascript和css的数据。
*更新2 *
数据元素可以是嵌套的。Eliot Kimber在一篇文章中解释了这一点。我不记得是哪一个了。其思想是,它可以表示属性的集合
<data name="parent">
<data name="chilproperty1" value="abc"/>
<data name="chilproperty2" value="abc"/>
</data>这种结构对于专门化的目的非常有用。
在我的理解中,数据元素是不具体的。这是作者记录非常具体的需求的一种方式,不管是专门的还是非专业的。稍后在构建过程中可以很容易地使用xsl检索值。
https://stackoverflow.com/questions/15100912
复制相似问题