【问题标题】:Docbook xi:include文档手册 xi:include
【发布时间】:2015-01-27 13:55:43
【问题描述】:

我正在尝试创建一个文档。我创建了一本主要的 XML 书,在其中我使用<xi:include> 添加不同的章节。

我正在关注DocBook XSL: The Complete Guide / Using XInclude 创建书籍和章节文件。

这是我的主要 XML 文件 book1.xml

<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
                      "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<book>
  <title>MAIN NOTES</title>
  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="CH1.xml" />
</book>

这是我的第 1 章 (CH1.xml)。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
                         "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="CH1">
  <title>Chapter 1</title>
  <para>This is Test</para>
</chapter>

现在,当我验证这些 XML 文件时,CH1.xml 就可以了。但我总是得到 ​​p>

没有找到元素“xi:include”的声明

book1.xml。我在这里想念什么?请帮忙。

【问题讨论】:

  • 您使用哪个解析器?是 XInclude 感知的,还是您可以检查 XInclude 功能是否已启用?
  • 我使用带有选项 --xinclude 的 xsltproc。

标签: xml xml-validation docbook


【解决方案1】:

“DocBook XSL:完整指南”的另一部分描述了如何在使用 XInclude 时进行 DTD 验证:http://www.sagehill.net/docbookxsl/ValidXinclude.html

简而言之,有两种选择:

  1. 在 XInclude 处理后验证。使用 xmllint,可以使用以下命令来完成: xmllint --xinclude --postvalid book1.xml
  2. 自定义 DTD 以包含 xi:include 元素。

【讨论】:

  • 谢谢。这样就解决了问题。我使用了xmllint --xinclude --postvalid book1.xml,输出是一个有效的xml。
猜你喜欢
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
  • 2016-03-17
  • 1970-01-01
相关资源
最近更新 更多