【问题标题】:How to properly include a constant string in DocBook 5.0?如何在 DocBook 5.0 中正确包含常量字符串?
【发布时间】:2018-02-06 12:03:25
【问题描述】:

我正在开发的软件的文档是用 DocBook 4.2 和 DTD 编写的,我想迁移到 5.0 并放弃 DTD。大部分内容都已迁移,但最后剩下的一件事是版本宏。我曾经有一个名为 version.ent 的文件(由 Makefile 生成):

<!ENTITY __VERSION__ "1.2.3-git">

然后在我希望包含软件版本的每个文件中都引用了该文件一次:

<!ENTITY % version SYSTEM "version.ent">
%version;
]>

有了这些,就有可能做这样的事情:

Welcome to the User's guide of foo version &__VERSION__.

在不使用 DTD 的情况下如何在 DocBook 5.0 中实现这种机制?

【问题讨论】:

标签: macros constants docbook docbook-5


【解决方案1】:

经过一番挖掘,我发现解决方案是内部 DTD 子集。我错误地认为不应该完全使用 DTD,但它是不正确的。

这个页面解释得很好:http://www.sagehill.net/docbookxsl/Db5Entities.html。相关引述:

当您从 DTD 切换到 RelaxNG(或 W3C XML Schema,为此 问题),您将失去在架构中定义 XML 实体的能力。

还有:

您仍然可以在 DocBook 5 中使用实体,但不能声明它们 在 RelaxNG 模式中。相反,您必须引用您的实体 需要的每个文档的 DOCTYPE 声明中的声明 他们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2019-04-18
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    相关资源
    最近更新 更多