1

我有openembedded一个文档目录,自述文件指示我运行

make <type>

类型可以是 pdf、dvi、html、txt 等

xsltproc并且docbook-utils需要生成文档。两者都已安装。

你有make pdf,产生的错误是:

./usermanual.xml:91: element chapter: validity error : Element chapter content
 does not follow the DTD, expecting (beginpage? , chapterinfo? , (title , 
subtitle? , titleabbrev?) , (toc ...
title CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA CDATA 
CDATA CDATA CDATA ) 
Document ./usermanual.xml does not validate
make: *** [lint] Error 3

我对文件、文件有绝对0的经验。而且我怀疑我拥有的版本和来源需要的冲突。XMLdtddocbook-utils

4

1 回答 1

2

错误消息被截断,因此无法确切知道<chapter>元素的要求是什么,但它表示<chapter>元素的内容与 DTD 不匹配,因此无法验证。它详细说明了该<chapter>元素以特定顺序需要某些元素的问题。

错误消息中的逗号表示一个序列。从上面显示的错误消息部分可以知道,在<chapter>元素内部:

  • 您可以有零个或一个 <beginpage>元素,如果存在,它必须先出现。
  • 您可以有零个或一个 <chapterinfo>元素,如果存在,它必须在其他元素之前但在<beginpage>(如果存在)之后。
  • <beginpage>and之后<chapterinfo>,你必须有一个<title>and 你最多可以有一个<subtitle>or <titleabbrev>

如果您的源 XML 中未遵循上述任何规则,则验证将失败。

消息的 DTD 描述的其余部分似乎是缩写的,因此无法得出任何结论。您应该检查完整的 DTD 以了解问题所在。阅读 DTD 并不难。大多数时候你只需要理解逗号分隔名称的序列<!ELEMENT name (title?, first, middle*, last)>:(name允许零或一title,必须有一个first,可能有零或无界middle并且必须有last,按此顺序),以及由分隔的选项:(|必须包含or ) or (可以为空,可以包含or的多个选项,顺序不限)。<!ELEMENT contact (email | phone)>contactemailphone<!ELEMENT contact (email | phone)*>contactemailphone

您可能想阅读快速DTD 教程

于 2014-05-07T15:08:50.850 回答