xml - DocBook 5.0 发行版上 docbook.dtd 和 docbook.rng 之间的差异

标签 xml dtd relaxng docbook-5

当我使用 RelaxNG 和 DocBook 5.0 发行版上提供的 docbook.rng 架构验证我的文档时,会出现这样的错误,

error: attribute "title" not allowed at this point; ignored

并且有问题的 XML 元素是 informaltable。事实上,我在 O'Reilly 网站上读到,informaltable 的基本定义是一个没有标题的表格。但是,同一发行版上提供的 docbook.dtd DTD 将 title 指定为 informatltable 上的属性。那么这是 DTD 中的错误吗?

DTD 片段,包含在此处,以供引用。如果这个 DTD 确实不正确,那么某处是否有正确的 DTD,或者我可以以某种方式生成它?

<!ELEMENT informaltable (info?, ((textobject*, (mediaobject+|tgroup+))|((col*|colgroup*), thead?, tfoot?, (tbody+|tr+))))>

<!ATTLIST informaltable
    xmlns   CDATA   #FIXED  "http://docbook.org/ns/docbook"
    role    CDATA   #IMPLIED
    %db.common.attributes;
    %db.common.linking.attributes;
    tabstyle    CDATA   #IMPLIED
    floatstyle  CDATA   #IMPLIED
    orient  (land|port) #IMPLIED
    colsep  (0|1)   #IMPLIED
    rowsep  (0|1)   #IMPLIED
    frame   (all|bottom|none|sides|top|topbot|void|above|below|hsides|lhs|rhs|vsides|box|border)    #IMPLIED
    pgwide  (0|1)   #IMPLIED
    rowheader   (firstcol|norowheader)  #IMPLIED
    class   CDATA   #IMPLIED
    style   CDATA   #IMPLIED
    title   CDATA   #IMPLIED
    lang    CDATA   #IMPLIED
    onclick CDATA   #IMPLIED
    ondblclick  CDATA   #IMPLIED
    onmousedown CDATA   #IMPLIED
    onmouseup   CDATA   #IMPLIED
    onmouseover CDATA   #IMPLIED
    onmousemove CDATA   #IMPLIED
    onmouseout  CDATA   #IMPLIED
    onkeypress  CDATA   #IMPLIED
    onkeydown   CDATA   #IMPLIED
    onkeyup CDATA   #IMPLIED
    summary CDATA   #IMPLIED
    width   CDATA   #IMPLIED
    border  NMTOKEN #IMPLIED
    rules   (none|groups|rows|cols|all) #IMPLIED
    cellspacing CDATA   #IMPLIED
    cellpadding CDATA   #IMPLIED

>

最佳答案

DocBok 5.0 DTD 只是一个近似值。针对 DTD 进行验证的文档不一定针对规范的 RELAX NG 模式有效。

DocBook 支持两种类型的表结构:CALS 和 HTML。 informaltable 上的 title 属性仅在 HTML 表中受支持。 RELAX NG 架构可以区分这两种类型的表(具有相同的名称),但在 DTD 中,无法强制执行仅在 HTML 表中允许 title 的限制。

另请参阅https://docbook.org/docs/howto/howto.html#introduction-schemas .

关于xml - DocBook 5.0 发行版上 docbook.dtd 和 docbook.rng 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972902/

相关文章:

java - 解析映射器 XML 时出错。原因 : java. lang.NullPointerException

xml - 在 SQL Server 中轻松使用 Excel 数据

java - Tidy 导致不良间距问题 (JTidy)

xml - 是否有任何允许指定约束(如无循环引用)的 XML 模式语言?

c# - XML SelectNodes then SelectSingleNodes - 只检索第一个

xml - 是否可以在内部使用 XML 模式,就像 DTD 一样?

xml - 如何在 DTD 中指定无限的 child ​​?

java - 如何从 jar 文件加载 DTD?

java - 使用 JAXB : [ERROR] Unexpected <xsd:element> appears with an XSD file 时出现问题

java - 使用 XML Schema、DTD、RelaxNG 和 Schematron 验证 DocBook 文档