是否可以包含一本docbook" article"进入"书"?

时间:2018-02-20 15:33:01

标签: maven plugins docbook oxygenxml

从docbook到PDF的生成遇到了问题。

我需要根据几个docbook-xmls生成一个PDF。其中一些XML是手动编写的(如下面的摘录" book.xml"),其中一些是由OxygenXML生成的(下面的第二部分摘录)。后者是使用OxygenXML将XSD-schema转移到docbook中。由于氧气在这里没有选项,它总是制作一本docbook" article"。

包含这些文章的文件是一本docbook" book"。但是,包含会产生错误:第一个错误告诉:

element "article" from namespace "http://docbook.org/ns/docbook" 
not allowed in this context

我的book.xml:

<?xml version="1.0" encoding="utf-8"?>
<book version="5.1" xml:lang="en" xmlns="http://docbook.org/ns/docbook"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xlink2="http://www.w3.org/1999/xlink"
  xmlns:xlink="http://www.w3.org/1999/xhtml"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:ns6="http://www.w3.org/2000/svg"
  xmlns:ns5="http://www.w3.org/1998/Math/MathML"
  xmlns:ns2="http://docbook.org/ns/transclusion"
  xmlns:ns="http://docbook.org/ns/docbook">

<title>xyz</title>

<chapter>
  <title>my xsd previously rendered by oxygen</title>
  <xi:include href="generated_schemata/my_xsd.xml"/>
</chapter>
...

和生成的my_xsd.xml的开头:

<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rng" type="xml"?>
<!--XML Schema documentation generated by <oXygen/> XML Developer.-->
<article version="5.0" xmlns="http://docbook.org/ns/docbook"
     xmlns:ns5="http://www.w3.org/1998/Math/MathML"
     xmlns:ns4="http://www.w3.org/1999/xhtml"
     xmlns:ns3="http://www.w3.org/2000/svg"
     xmlns:ns2="http://www.w3.org/1999/xlink"
     xmlns:ns="http://docbook.org/ns/docbook">
  <title>Schema documentation for ServiceCatalogue.xsd</title>

  <info>
    <pubdate>february 20, 2018</pubdate>
  </info>

  <section>
    <title>Namespace: ""</title>
...

问题:有没有办法包含一本docbook&#34; article&#34;进入&#34;书&#34; (或者其他一些结构,最后,我得到一个PDF)?

我正在使用的工具与docbkx-plugin一起使用。

1 个答案:

答案 0 :(得分:2)

您的代码段中的问题是您在chapter中包含(XInclude)文章 - 而不是book本身。 DocBook架构不允许这样做(article不能在chapter内)

即:

  • book&lt;允许article(或set&lt; article};
  • 但是这(如你的样本中):book&lt; chapter&lt; article不是

由于xinclude声明,你没看到全貌。

所以解决方法是(比较这两个片段):

此致:

<book version="5.1" ...>
...
<title>xyz</title>

<chapter>
   <title>my xsd previously rendered by oxygen</title>
   <xi:include href="generated_schemata/my_xsd.xml"/>
</chapter>
</book>

正确的一个:

<book version="5.1"...>
...
<title>xyz</title>

<xi:include href="generated_schemata/my_xsd.xml"/>

</book>

注意:您在图书上有不同的架构验证(5. 1 )和文章(5. 0 )!注意它!