我正在使用 DocBook 5.0,创建一个写作/编辑/生产环境。我根据 DB5 的 RNG 模式版本验证我的 XML。
为了使我的环境更易于使用,我喜欢将我的书籍分成多个文件,使用 xinclude 将书籍的章节拉入书籍文件中。在我的 XSLT 中效果很好。
我喜欢使用系统实体来让我的非技术作家/编辑更容易使用一些特殊字符。我为一些常见的特殊字符设置了一个带有易于使用的名称的实体文件(例如:&emDash; for —)。
我以为我在某处读到过,您不能在同一个 XML 文件中同时使用实体和 xinclude。不过,我只是尝试过,它验证并转换正常。这个可以吗?我没有看到这里有问题吗?以下是我在本书文件顶部声明所有内容的方式:
<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
<!DOCTYPE book [
<!ENTITY % entities SYSTEM "utilities/entities/entities.ent">
%entities;
]>
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf" version="5.0" xml:id="book">
谢谢你的帮助!