一般实体“trk”未定义且没有默认实体错误

时间:2013-03-05 14:39:45

标签: html html5 xhtml xhtml-1.0-strict

我正在尝试修复此验证问题:

  

一般实体“trk”未定义且没有默认实体和引用   实体“trk”,无法生成系统标识符。

这是我的代码:

<a href="http://www.linkedin.com/profile/view?id=189019016&trk=tab_pro" 
   class="thumbnail">  
</a>

任何人都可以看到问题所在吗?

3 个答案:

答案 0 :(得分:2)

Zenith's answer指出了一般问题 - &表示HTML中转义字符序列的开始,因此验证程序正在尝试将trk解析为字符实体(它不是)。 &需要被编码为实体本身以防止这种混淆。

在XHTML严格中,这些必须是&#,后跟unicode数字条目(而不是像amphellip等短名称),因此&将{ {1}}。当我感到难过时,我经常使用this reference sheet

因此,XHTML strict的正确代码是:

&#38;

答案 1 :(得分:1)

尝试使用&替换 trk 之前的&amp;

答案 2 :(得分:0)

在经典HTML和XHTML中,不允许使用类似&trk=的构造,因为它被正式解释为实体引用,并且不存在这样的实体。这实际上只是一种形式,因为浏览器不会那样(或者在本世纪没有表现),但错误消息在验证时很烦人。

HTML5允许构造,因为相当特殊的规则旨在应对这种常见情况。但是,目前HTML5验证器在此处有一个错误,并将其报告为错误。有一个validator.nu软件的实验版本,其中修复了此错误:http://qa-dev.w3.org:8888/

将来,如果您使用<!doctype html>(当然可能会导致其他验证问题,那么您应该能够使用此类构造而不会出现验证错误。