【问题标题】:Asterisks in XML attribute valueXML 属性值中的星号
【发布时间】:2013-01-04 11:09:19
【问题描述】:

我有一个 XHTML 文件,其中包含这一行:

<tr id="some-string-with-a-*">

我收到验证错误:

tr 属性 id 的值语法无效

我将其更改为&amp;#42;,但仍然出现相同的错误。
有什么建议吗?

【问题讨论】:

    标签: xml validation xhtml


    【解决方案1】:

    您不能使用星号:

    ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,并且可以是 后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、 下划线(“_”)、冒号(“:”)和句点(“.”)。

    请参阅XHTML specification 的片段标识符部分:

    请注意,XML 1.0 第 2.3 节中的合法值集合, 生产 5 比允许在 ID 中使用的要大得多 和 HTML 4 中定义的 NAME 类型。在定义片段标识符时 向后兼容,仅匹配模式的字符串 [A-Za-z][A-Za-z0-9:_.-]* 应该被使用。请参阅 [HTML4] 的第 6.2 节 了解更多信息。

    请注意,如果您不想支持向后兼容性,则根据 XML 允许使用其他字符,但该列表中也不包含星号:

    http://www.w3.org/TR/REC-xml/#NT-Name

    【讨论】:

    • 感谢您的精彩解释。但是,我可以使用例如某些实体,即&amp;acirc;,它不会引发验证错误。这就是为什么我认为可能有一些解决方法。
    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2019-10-30
    相关资源
    最近更新 更多