DITA中有兩種「通用」類型的元數據標籤,數據元素和關鍵字元素。當然,還有其他的一些,但顯然這應該很快就會被棄用,而且這個名字無論如何都暗示着它是最後的手段。DITA中的關鍵字與數據元數據?
因此,該關鍵字似乎與Web應用程序中的標籤非常相似,即常用於「民俗分類」的標籤。但是數據和關鍵字之間的確切區別是什麼,什麼時候應該使用哪個?
DITA中有兩種「通用」類型的元數據標籤,數據元素和關鍵字元素。當然,還有其他的一些,但顯然這應該很快就會被棄用,而且這個名字無論如何都暗示着它是最後的手段。DITA中的關鍵字與數據元數據?
因此,該關鍵字似乎與Web應用程序中的標籤非常相似,即常用於「民俗分類」的標籤。但是數據和關鍵字之間的確切區別是什麼,什麼時候應該使用哪個?
<data>
元素主要用於專業化,因此直接使用它可能不明智。 <keyword>
元素更好。
此:
<metadata> <keywords> <keyword>red</keyword> <keyword>green</keyword> <keyword>blue</keyword> </keywords> </metadata>
將使這個在DITA-OT XHTML轉變:
<head> <meta name="DC.subject" content="red, green, blue"/> <meta name="keywords" content="red, green, blue"/> </head>
如果你想添加標籤,我會考慮使用主題方案地圖,這將允許您包括受控值的列表。
如果您專注於@base
或@props
屬性,則可以添加具有更多控制權的元數據。在這裏,我們有一個專門用於@era
的@props
屬性。
然後,您可以將@era
屬性添加到主題中的元素或映射中的<topicref>
元素。
<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>
該數據元素具有@href和@name和@value屬性的關鍵。
因此,您可以定義您可能需要用於構建的任何屬性。
<data name="currentTopNavSection" value="profil"/>
我有幾個場景需要根據我的文檔的受衆提供一些路徑信息。我可以使用這個數據元素。
<data audience="lifeg" name="active-audience" value="lifeg"/>
這一次讓我知道這是積極的受衆時篩選的文檔
另一個例子是附加這將是具體到一個地圖
一個javascript我目前正在研究專門的數據以包含javascript和css。
*更新2 *
數據元件可以被嵌套。艾略特金伯爾在一篇文章中解釋了這一點。我不記得哪一個。這個想法是它可以代表一組屬性
<data name="parent">
<data name="chilproperty1" value="abc"/>
<data name="chilproperty2" value="abc"/>
</data>
這個結構對於專業化目的非常有用。
在我的理解中,數據元素不是特定的。這是一種讓作者記錄非常特殊的需求,專業與否的方法。在構建過程中稍後用xsl檢索值很容易。
你在這裏有點偏離;關鍵字元素不是元數據元素。關鍵字元素是通用文本元素,通常用於產品名稱。我認爲你可能想要在這裏指定的元素是關鍵字元素。另外,你真的不想寫掉其他元素;它不被棄用和相當有用。
關鍵字元件
關鍵字元件可以在主題或地圖級別被使用。它包含主題詞彙表中的詞彙列表,標記有關鍵字或indexterm元素。關鍵字和indexterm元素被視爲元數據元素,它們應該適當地反映在輸出中。指標要素通常會產生指數;在XHTML輸出中,關鍵字元素通常被添加到XHTML中並用於搜索引擎優化。 (這是DITA-OT的標準功能,雖然自由PDF渲染引擎附帶的DITA-OT不生成索引。)用於
數據元素
原樣,數據元素表示DITA主題或地圖內的屬性。以下是關鍵方面:
默認情況下,處理器忽略數據元素的內容。但是,可以構建使用特定數據元素的內容進行格式化等的自定義處理。
作爲專業化的基礎,數據元素特別有用。它可以實現更精確的語義以及特定元素的受控列表的屬性列表。如果您檢查書籤中使用的元數據元素並學習培訓專業化,則可以看到許多用作專業化基礎的示例。
有關具體示例,請參閱data element topic in the DITA 1.2 specification。
othermeta元素
的othermeta元件設計成保持它沒有現有的元數據元素似乎適用內容。它基本上擁有一個名稱和值對。您使用@name屬性來命名屬性,使用@content屬性來保存該值。
什麼時候應該使用哪個特定元素?
謝謝,但我不完全同意一切。我知道該關鍵字也被用作重用元素,有點像變量,但問題是它也被用作元數據元素,正如規範所證明的:「
關於othermeta應該被棄用的東西我無法確認,但是我在Eliot Kimber的一篇文章中看到它(http://tech.groups.yahoo.com/group/dita-users/message/29812),實際上他說它已經過時了,但我真的不知道。也許他可以對此有所瞭解......儘管如此,我認爲它不是非常有用,但正如我所說,這個名字表明這是最後的手段。在這種情況下,我寧願使用數據元素,甚至是未指定的數據元素,因爲它具有名稱和值屬性,幾乎與其他元素的名稱和內容相同。 – Anders 2013-03-11 00:57:08
確切的區別?有很多不同之處。閱讀規範(對不起,我不是故意不發聲)。
這是與已經提到的規範的一個區別,但我認爲值得強調,因爲它可以幫助您決定使用哪個(或者說,幫助您決定是否使用<數據>):
處理器應忽略<數據>由缺省元素,所以<數據的內容>元素應該僅被用於屬性和不嵌入文本格式化爲話題體的流的一部分。
(另見規範開始在其他地方的文字:「定製處理可能......」)
您可以使用關鍵字<>「嵌入文本格式化爲話題的流程的一部分身體「,但你不應該這樣做與<數據>。
你能描述一下你的具體用例嗎? (你想標記什麼信息?)
我已經仔細閱讀了規範,我想這就是問題的來源,我認爲它對元數據元素的使用非常模糊。我知道他們的數據模型的明顯差異,特別是關鍵字在非元數據上下文中的使用。但是,關鍵字也可以用作元數據元素,我打算將它們的差異作爲元數據標籤,即在prolog元數據元素中的關鍵字標籤中使用的關鍵字。這與使用正文文本的用法不同,規範說它將其視爲與Dublin Core的主題標籤相媲美。 – Anders 2013-03-11 12:49:42
嗯,我同意你的觀點,即我也傾向於使用通用元數據的關鍵字元素,但那是混亂。我知道數據元素專門用於專業化,但顯然不只是這一點。在Eliot Kimber的「從業者DITA」一書中,它指出數據是「保持任意元數據」的主要元素。所以我不覺得這個區別非常明顯。關於subjectScheme,主要關注屬性,並沒有完全回答這個問題。 – Anders 2013-02-28 21:15:27
我記得在渲染過程中使用本身閱讀了關於DITA CMS的內容。如果我找到源,我會添加更多答案。 – 2013-02-28 23:33:03