【问题标题】:Is it possible to include a docbook "article" into a "book"?是否可以将文档“文章”包含到“书”中?
【发布时间】:2018-02-20 15:33:01
【问题描述】:

从 docbook 到 PDF 的生成出现问题。

我需要根据几个 docbook-xml 生成一个 PDF。其中一些 XML 是手动编写的(如下所示的摘录“book.xml”),其中一些是由 OxygenXML 生成的(下面的第二个摘录)。后者是使用 OxygenXML 传输到 docbook 中的 XSD 模式。由于 Oxygen 在这里没有选项,它总是生成一个文档“文章”。

包含这些文章的文件是一本文档“书”。但是,包含会产生错误:第一个错误表明:

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>
...

问题:有没有办法将文档“文章”包含到“书”(或其他结构,所以最后我得到一个 PDF)?

我使用的工具是 maven 和 docbkx-plugin。

【问题讨论】:

    标签: maven plugins docbook oxygenxml


    【解决方案1】:

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

    即:

    • 允许book article(或set article);
    • 但是这个(如您的示例):book chapter article 不是

    由于 xinclude 语句,您只是没有看到完整的图片。

    所以解决方法是(比较这两个 sn-ps):

    你的:

    <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) 有不同的架构验证!请注意!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      • 2023-03-25
      • 2015-01-31
      相关资源
      最近更新 更多