Xml DocBook 5中的分块限制了TOC深度并使其跳过数字?

Xml DocBook 5中的分块限制了TOC深度并使其跳过数字?,xml,xslt,tableofcontents,docbook-5,docbook-xsl,Xml,Xslt,Tableofcontents,Docbook 5,Docbook Xsl,我有一个DocBook V5.0文档,它以前是一个包含整本书的.DocBook文件。此时,生成的TOC看起来很好。现在,我已经将输入分块到4个不同的.docbook文件中,还需要分块输出 在这一变化之后,我突然遇到了两个问题: TOC仅包含四个条目(每个.docbook对应一个条目),而不是它过去使用的全部深度 非常奇怪的是,TOC章节编号是1、2和4,然后是没有编号的词汇表 关于后者,如果我删除第二章,我会得到1、2和术语表,所以我想第二章的内容不会导致错误编号 无论如何,我的问题是,如何在保

我有一个DocBook V5.0文档,它以前是一个包含整本书的
.DocBook
文件。此时,生成的TOC看起来很好。现在,我已经将输入分块到4个不同的
.docbook
文件中,还需要分块输出

在这一变化之后,我突然遇到了两个问题:

  • TOC仅包含四个条目(每个.docbook对应一个条目),而不是它过去使用的全部深度
  • 非常奇怪的是,TOC章节编号是1、2和4,然后是没有编号的词汇表
  • 关于后者,如果我删除第二章,我会得到1、2和术语表,所以我想第二章的内容不会导致错误编号

    无论如何,我的问题是,如何在保留分块输入和输出的同时恢复外观正常的TOC?(分块甚至可以限制为单个文件深度,即一个文件输入,一个文件输出——但我希望TOC深度更高。)

    我所做的 我使我的主文件如下所示:

    <!DOCTYPE book [
        <!ENTITY a SYSTEM "a.docbook">
        <!ENTITY b SYSTEM "b.docbook">
        <!ENTITY c SYSTEM "c.docbook">
        <!ENTITY glossary SYSTEM "glossary.docbook">
        <!ENTITY larr "&#x2190;">
        <!ENTITY rarr "&#x2192;">
        <!ENTITY mdash "&#x2014;">
    ]>
    <book xmlns:xl="http://www.w3.org/1999/xlink">
    <title>My Title</title>
    &a;
    &b;
    &c;
    &glossary;
    </book>
    
    
    ]>
    我的头衔
    &a;
    &b;
    &c;
    &词汇表;
    
    我的XSL与以前类似,添加了一些分块控制选项(但没有更改原始TOC选项):

    
    UTF-8
    书名
    对
    
    我的
    .docbook
    文件都是这样的:

    <!DOCTYPE book [
        <!ENTITY a SYSTEM "a.docbook">
        <!ENTITY b SYSTEM "b.docbook">
        <!ENTITY c SYSTEM "c.docbook">
        <!ENTITY glossary SYSTEM "glossary.docbook">
        <!ENTITY larr "&#x2190;">
        <!ENTITY rarr "&#x2192;">
        <!ENTITY mdash "&#x2014;">
    ]>
    <book xmlns:xl="http://www.w3.org/1999/xlink">
    <title>My Title</title>
    &a;
    &b;
    &c;
    &glossary;
    </book>
    
    A. ...

    除了
    glossary.doc
    ,它是:

    词汇表


    现在,我意识到在一章中有一章可能有点奇怪。这甚至可能是原因。但是,它会在没有警告的情况下进行验证,而且,如果我在给定文件中做了最外层的标记,则TOC中会丢失整个文件。

    提示:用替换旧的
    。这样做的优点是,所有这些都可以通过xml模式进行良好的验证。此外,XML编辑器可以更好地使用xinclude,然后通过
    实体
    包含文件

    以下是一个例子:

    文件:
    book.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <book version="5.0" xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:db="http://docbook.org/ns/docbook">
      <info>
        <title>This is a book</title>
      </info>
    
      <chapter>
        <title>This is a chapter</title>
    
        <section>
          <title>This is a section</title>
    
          <para>This is a paragraph.</para>
        </section>
    
        <xi:include href="included_section.xml" />
      </chapter>
    </book>
    
    <?xml version="1.0" encoding="UTF-8"?>
    
    <section version="5.0" xmlns="http://docbook.org/ns/docbook"
             xmlns:xlink="http://www.w3.org/1999/xlink"
             xmlns:xi="http://www.w3.org/2001/XInclude"
             xmlns:ns5="http://www.w3.org/2000/svg"
             xmlns:ns4="http://www.w3.org/1998/Math/MathML"
             xmlns:ns3="http://www.w3.org/1999/xhtml"
             xmlns:db="http://docbook.org/ns/docbook">
      <title>This is an included section</title>
      <para>This is an included paragraph.</para>
    
      <mediaobject>
        <imageobject>
          <imagedata fileref="media/martin-luther-king.jpg"></imagedata>
        </imageobject>
      </mediaobject>
    </section>
    
    在此示例中,还有一个目录
    media
    ,其中包含文件
    martin luther king.jpg

    您上面的示例如下所示:

    <book version="5.0" xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:db="http://docbook.org/ns/docbook">
        <title>My Title</title>
        <xi:include href="chapter-a.xml" />
        <xi:include href="chapter-b.xml" />
        <xi:include href="chapter-c.xml" />
        <xi:include href="glossary.xml" />
    </book>
    
    <chapter version="5.0" xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:db="http://docbook.org/ns/docbook">
        <title>This is a chapter</title>
    
        <section>
          <title>This is a section</title>
    
          <para>This is a paragraph.</para>
        </section>
    </chapter>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <glossary version="5.0" xmlns="http://docbook.org/ns/docbook" 
            xmlns:xi="http://www.w3.org/2001/XInclude" 
            xmlns:xlink="http://www.w3.org/1999/xlink">
        <title>Example Glossary</title>
    
        <para>
            This is not a real glossary, it's just an example.
        </para>
    </glossary>
    
    
    我的头衔
    
    每个单独的章节文件可能看起来像:

    <book version="5.0" xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:db="http://docbook.org/ns/docbook">
        <title>My Title</title>
        <xi:include href="chapter-a.xml" />
        <xi:include href="chapter-b.xml" />
        <xi:include href="chapter-c.xml" />
        <xi:include href="glossary.xml" />
    </book>
    
    <chapter version="5.0" xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:db="http://docbook.org/ns/docbook">
        <title>This is a chapter</title>
    
        <section>
          <title>This is a section</title>
    
          <para>This is a paragraph.</para>
        </section>
    </chapter>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <glossary version="5.0" xmlns="http://docbook.org/ns/docbook" 
            xmlns:xi="http://www.w3.org/2001/XInclude" 
            xmlns:xlink="http://www.w3.org/1999/xlink">
        <title>Example Glossary</title>
    
        <para>
            This is not a real glossary, it's just an example.
        </para>
    </glossary>
    
    
    这是一章
    这是一个章节
    这是一段。
    
    以及术语表文件,可以如下所示:

    <book version="5.0" xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:db="http://docbook.org/ns/docbook">
        <title>My Title</title>
        <xi:include href="chapter-a.xml" />
        <xi:include href="chapter-b.xml" />
        <xi:include href="chapter-c.xml" />
        <xi:include href="glossary.xml" />
    </book>
    
    <chapter version="5.0" xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:xi="http://www.w3.org/2001/XInclude"
          xmlns:db="http://docbook.org/ns/docbook">
        <title>This is a chapter</title>
    
        <section>
          <title>This is a section</title>
    
          <para>This is a paragraph.</para>
        </section>
    </chapter>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <glossary version="5.0" xmlns="http://docbook.org/ns/docbook" 
            xmlns:xi="http://www.w3.org/2001/XInclude" 
            xmlns:xlink="http://www.w3.org/1999/xlink">
        <title>Example Glossary</title>
    
        <para>
            This is not a real glossary, it's just an example.
        </para>
    </glossary>
    
    
    示例词汇表
    这不是一个真正的词汇表,只是一个例子。
    
    不要在包含的
    .docbook
    文件中嵌套章节。最外层的标签使用
    章节
    ,最外层的标签使用
    章节


    (尽管进行了验证,但我发现最短的文件实际上缺少一对
    标记,因此它有一章有两个
    标题
    等等。我试图通过将最外层的标记更改为
    ,然后将其内部的
    标记更改为
    ,来重新构造该文件这,这导致它没有出现在TOC上,所以我假设我已经证明了
    章节中的
    部分由于某种原因不起作用,而实际上是我剪切粘贴工作中丢失的标签。不要依赖验证程序!)

    谢谢你的提示,但是使用DocBook V5.0不是一件好事,你可以调用你的文件
    。DocBook
    ,不要使用
    Ok thx来解释,我不知道DocBook是否扩展。关于这个问题,听起来内容或改进的XSL有一些问题。你能分享一下这些内容的一个小例子吗nt文件?也许是GitHub的要点谢谢,查看内容文件是解决问题的关键。回答如下。