我有openembedded
有一个docs目录,README指示我运行
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
- 使用XML
个文件,dtd
个文件。而且我怀疑我的版本docbook-utils
发生了冲突,而且来源需要。
答案 0 :(得分:1)
错误消息被截断,因此无法确切知道<chapter>
元素的要求是什么,但它表示<chapter>
元素的内容不匹配DTD因此不会验证。它详细说明了<chapter>
元素按特定顺序需要某些元素的问题。
错误消息中的逗号表示序列。从上面显示的错误消息部分可以知道,<chapter>
元素内部:
<beginpage>
元素,如果存在,则必须先出现。<chapterinfo>
元素,如果存在,则必须先于其他元素,但必须在<beginpage>
之后(如果存在)。<beginpage>
和<chapterinfo>
,您必须拥有<title>
, 最多只能有<subtitle>
<titleabbrev>
}或<!ELEMENT name (title?, first, middle*, last)>
。如果源XML中没有遵循上述任何规则,验证将失败。
消息的其余DTD描述似乎是缩写的,因此不可能得出任何结论。您应该检查完整的DTD以了解错误。阅读DTD并不困难。大多数情况下你只需要理解以逗号分隔的名称序列:name
(title
允许零或一个first
,必须有一个{{1 }},可能为零或无界middle
,且必须按此顺序排列last
,选项由|
分隔:{{1} (<!ELEMENT contact (email | phone)>
必须包含contact
或email
)或phone
(<!ELEMENT contact (email | phone)*>
可以为空,可以包含多个contact
或{的选项{1}},按任意顺序)。
您可能想要快速阅读DTD tutorial。