0

我可以使用xl

<?xml version="1.0"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0">
    ...
</article>

还是我必须使用xlink

<?xml version="1.0"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
    ...
</article>

?

4

1 回答 1

1

Xml 验证和命名空间通常在 XML Schema (XSD) 规范的上下文中设置问题,但可以在文档类型定义 (DTD) 规范上下文中回答问题。

验证反对docbook.dtd

如果您验证反对,则docbook.dtd必须使用此处xmlns:xlink回答 的内容,但首先要仔细考虑为什么必须使用文档类型声明和名称空间,因为 XML 模式是 DTD 的继承者,而 XSD 支持名称空间,但 DTD 不支持它们。

验证反对docbook.xsd

如果你验证反对docbook.xsd你可以使用任何你喜欢的,但保留的三字母序列 x,m,l,在任何情况下组合。例如以下test.xml,直接取自DocBook V5.0 - The Transition Guide验证成功:

$ ls
docbook.xsd  test.xml  xlink.xsd  xml.xsd
$ xmllint --schema docbook.xsd test.xml 
<?xml version="1.0"?>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0">
    <title>Test</title>
    <section>
        <title>LS command</title>
        <para xml:id="ls">
            This command is a synonym for <command linkend="dir">DIR</command> command.
        </para>
        <para xml:id="dir">
            This command is a synonym for <command linkend="ls">LS</command> command.
        </para>
        <para>
            <application xl:href="http://www.gnu.org/software/emacs/">Emacs</application>
        </para>
    </section>
</article>
test.xml validates
$ 
于 2014-03-09T13:42:58.740 回答