代码之家  ›  专栏  ›  技术社区  ›  taringamberini

如何声明xlink命名空间以验证Docbook 5链接?

  •  0
  • taringamberini  · 技术社区  · 10 年前

    我可以用吗 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>
    

    ?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Community kfsone    7 年前

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

    正在根据验证 docbook.dtd

    如果根据验证 文档簿.dtd 您必须使用 xmlns:xlink 正如回答的那样 here ,但首先要仔细考虑为什么必须使用 Document Type Declaration and namespaces 因为XMLSchema是DTD的继承者,而XSD支持命名空间,DTD不支持它们。

    正在根据验证 docbook.xsd

    如果根据验证 文档.xld 你可以用任何你喜欢的,但保留 three-letter sequence x, m, l, in any case combination 。例如 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
    $ 
    
    推荐文章