【问题标题】:DTD definition errorDTD 定义错误
【发布时间】:2011-05-24 06:05:01
【问题描述】:

如下定义dtd会报错:

<!ELEMENT line (property*)>
<!ATTLIST line showType (1|?|+|*) "1" >

错误:

The name token is required in the enumerated type list for the "showType" attribute declaration.

该值似乎不能是特殊字符,如“?”、“+”、“*”。要将字符更改为 Latin-1 字符,例如 "& #42;"(在 '#' 之前添加一个空格),会出现相同的错误。

如何解决这个问题?

谢谢!

【问题讨论】:

  • 我猜,您将不得不以某种方式转义特殊字符(这与使用&符号引用不同)。不幸的是,我的 SGML 还不够好,不知道该怎么做。您是否已经使用过引号(如")?
  • 我在 Eclipse 中编辑 DTD,它会在发生更改时自动验证文件。
  • 使用引用也会得到同样的错误。

标签: xml dtd


【解决方案1】:

这是不可能的,因为您指定的所有枚举值都必须符合 XML 建议规定的 Nmtoken。见http://www.w3.org/TR/xml/#d0e3200

Nmtokens 的 BNF 可以在 http://www.w3.org/TR/xml/#d0e804 看到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多