我将尽力解决您最初的问题。总体而言,subjectScheme 专业化旨在创建主题分类和受控值。它具有定义可用于检索的主题分类以及定义和控制属性值的强大功能。目前,DITA-OT 仅提供属性控制值领域的功能。
问题:“它可以用于表示元数据元素还是仅表示元数据属性”?
答:我不会说它的目的是“表示元素或属性”。它旨在代表主题和受控价值。它的设计基于键,因此大量使用属性。
问题:如果您想为属性值添加定义,您在哪里做?
答:您有多种选择:
- 您可以创建描述主题或属性值的关联主题。您可以使用 subjectdef 元素上的 @href 属性来引用本主题。这对于提供一致定义或有关何时应使用条件处理值的信息特别有用。
- 您可以在 subjectdef 元素中嵌套一个 topicmeta 元素;在 topicmeta 元素中,您可以访问 shortdesc 和 navtitle 元素。
- 您将内容添加到 subjectdef 元素的 @navtitle 属性。我不建议这样做,因为 @navtitle 属性已被弃用并且通常无法翻译。
问题:您可以将 subjectScheme 特化与元数据元素一起使用吗?
回答:是的。在我的脑海中,这是一种基于 HTML 的输出格式的直接可能性和设计:
- 对于特定主题,将 topicmeta 元素添加到 subjectdef 元素。在 topicmeta 元素中,您可以完全访问所有元数据元素。添加尽可能多的元数据元素。
- 将 DITA 主题与相关主题相关联。这可以通过使用特定的属性和值来完成,也可以通过使用分类域中的 subjectref 元素来完成。
- 调整输出处理,以便与该主题关联的每个 DITA 主题都将元数据写入 HTML,就像元数据元素位于 DITA 主题本身一样。通过这种设计,您已经强制执行一致性,并且由于基于密钥的架构、易于维护和抽象层。
问题:你们可以发布主题方案吗?
回答:是的,如果使用 @href 属性为 subjectdef 元素引用主题。虽然默认情况下,subjectScheme 元素的@processing-role 属性设置为“resource-only”,@toc 属性设置为“no”,您可以修改这些值,它们将在整个地图中级联,使其成为可能生成输出。当然,这只是目前使用 DITA-OT 可以做到的;使用自定义处理实现,可能性是无限的。
我认为 subjectScheme 映射和分类域提供了许多令人兴奋的可能性,包括分面和过滤浏览(用于输出)和分面搜索(用于 DITA 源)。
我希望构建使用 subjectScheme 和分类的实现的人们将分享故事,演示他们的实现等等。我认为这将使 DITA 架构的这一部分可以做的事情更清晰,更易于人们使用。