gpt4 book ai didi

xml - 我可以在同一个 XML 文件中使用 xinclude 和实体吗?

转载 作者:行者123 更新时间:2023-12-05 03:15:45 25 4
gpt4 key购买 nike

我在 DocBook 5.0 中工作,创建一个写作/编辑/生产环境。我根据 DB5 的 RNG 模式版本验证我的 XML。

为了使我的环境更易于使用,我喜欢将我的书分成多个文件,使用 xinclude 将书的章节拉入书文件。在我的 XSLT 中效果很好。

我喜欢使用系统实体来让我的非技术作家/编辑更容易使用一些特殊字符。我为一些常见的特殊字符设置了一个带有易于使用的名称的实体文件(例如:&emDash; 表示 —)。

我想我在某处读到不能在同一个 XML 文件中同时使用实体和 xinclude。不过,我只是尝试了一下,它可以验证并转换为 OK。这个可以吗?这里有我没有看到的问题吗?以下是我在书籍文件顶部声明所有内容的方式:

<?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">

感谢您的帮助!

最佳答案

您写道“我想我在某处读到您不能在同一个 XML 文件中同时使用实体和 xinclude。”

先语言学究的回答:

XInclude 规范并不禁止使用实体;目前尚不清楚它是否可以连贯地这样做,因为它被定义为在信息集级别而不是 XML 字符流级别运行。并且 XML 规范不禁止在使用实体时使用 XInclude。因此,您所关注的两个功能的定义规范都没有禁止它。

其他一些试图定义使用配置文件的规范可能会禁止同时使用实体和 XInclude;我不知道有什么,但这并不意味着什么。但是,如果任何此类配置文件适用于您,我希望您会了解它们。

由于 XInclude 有时被视为一种使实体变得不必要(嗯,至少是外部实体)的方式,一些 XInclude 爱好者可能会认为将实体与 XInclude 一起使用是一种低级品味;如果您碰巧与任何有这种感觉并关心他们的想法的人一起工作,这对您来说很重要,但除此之外,您可以自由地向他们挥手致意并继续您的工作。 (我怀疑如果你读过你记得的那种东西,那是关于作者认为什么是良好实践或良好品味的陈述;这肯定不是关于什么是合法或技术上可行的事实陈述。)

其次,一个实用的答案:一些处理器和工具链支持使用在外部 DTD 子集中声明的实体,一些支持 XInclude,一些支持两者。检查您关心的工具;如果它们都按照您希望的方式处理数据,您就不用担心。

关于xml - 我可以在同一个 XML 文件中使用 xinclude 和实体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12569247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com