我无法让我的网站在W3C标记验证中验证。
以下是其中一个验证错误的示例。
Error: Attribute xmlns:content not allowed here.
我做了一些研究,有些文章建议我们更改:
xmlns:name="http://url" syntax into the prefix="name:http://url"
但是我有多个xmlns属性 在这种情况下,不确定如何编写前缀。
原文:
`<html lang="en" dir="ltr"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:og="http://ogp.me/ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:sioc="http://rdfs.org/sioc/ns#"
xmlns:sioct="http://rdfs.org/sioc/types#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">`
它是否被每个属性之间的空格分开?
<html lang="en" dir="ltr" prefix="content:http://purl.org/rss/1.0/modules/content/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/">
或者我们应该用\n
新行分开?
我已经在w3.org网站上查看了,看起来他们将这个属性分成了新的一行
我是对的吗?
http://www.w3.org/TR/2011/WD-rdfa-core-20111215/
答案 0 :(得分:1)
您不能在HTML 5中使用任意名称空间中的元素。为此,您需要使用XML,并且要进行验证,您需要一个合适的DTD或Schema,其中包含您要使用的所有名称空间。
答案 1 :(得分:0)
您需要在html标记之前使用doctype。您可以使用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
答案 2 :(得分:0)
网页包含RDFa标记,HTML 5中允许使用该标记。HTML+RDFa 1.1 specification有a section specifically dedicated to the @xmlns:
attributes。
它表示在RDFa 1.1中不推荐使用@xmlns:
,但仍允许向后兼容。因此,如果可能的话,不应该使用它。然后,Conformance Criteria for @xmlns:-Prefixed Attributes上的以下部分表明:
对于符合此规范的文档,具有不区分大小写的前缀匹配“
@xmlns:
”的名称的属性必须被视为符合要求。一致性检查器应该接受具有不区分大小写的前缀匹配“@xmlns:
”的属性名称作为符合。一致性检查器应该生成警告,注意不推荐使用@xmlns:
。一致性检查器可以报告使用xmlns:
作为错误。
据我所知,W3C HTML验证器正在采用更严格的一致性检查,其中xmlns:
被报告为错误,但我发现它很奇怪,因为它应该产生警告。