如何确定我的docbook文件是否有效?

时间:2018-05-23 00:06:11

标签: docbook

我有一个docbook文件me.xml。当我尝试将其转换为pdf时,我一直收到错误,而且我不确定转换器或我的文件是否是问题。

是否有一种快速,安全的方式,我可以测试我的文件是否是正确格式的docbook?

1 个答案:

答案 0 :(得分:1)

首先,您需要知道它是Docbook 5.x还是DocBook 4.5。

Docbook 4.5示例标题:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<article>
  <articleinfo>
    <title/>

    <author>
      <firstname/>

      <surname/>

      <affiliation>
        <orgname/>
      </affiliation>
    </author>

    <pubdate/>
  </articleinfo>

  <section>
    <title/>

    <para/>
  </section>
</article>

DocBook 5.1示例标题:

<?xml version="1.0" encoding="UTF-8"?>
<chapter version="5.1"
  xmlns="http://docbook.org/ns/docbook"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:trans="http://docbook.org/ns/transclusion"
  xmlns:svg="http://www.w3.org/2000/svg"
  xmlns:m="http://www.w3.org/1998/Math/MathML"
  xmlns:html="http://www.w3.org/1999/xhtml"
  xmlns:db="http://docbook.org/ns/docbook">
  <info>
    <title>Introduction</title>
  </info>
  <section>
    <info>
      <title>Chapter title</title>
    </info>
    <para>
    You can see an example:
    </para>
    <example>
    <title>main example</title>
      <programlisting language="c">
      </programlisting>
    </example>
  </section>
</chapter>

如何验证:

  1. 如果您使用编辑器创建/编辑DocBook文件(例如XMLMind XML EditorOxygen Author) - 完全编辑负责进行验证并告诉您是否有错误在您的DocBook文档中。此外编辑器不允许您插入错误的元素。

  2. 如果你只有xml文件和/或在任何文本编辑器中创建 - 你需要工具来在命令行中根据模式验证它。

  3. 注意1 :如果您使用的是DocBook 5.x并尝试针对RelaxNG和Schematron模式进行验证,请考虑以下信息:https://superuser.com/questions/741957/validating-docbook-5-documents-against-both-relaxng-and-schematron

    注意2 :不要忘记xml文件有两种形式的正确性:格式良好(针对XML规范的正确性)和有效性(针对特定XML词汇表的正确性)