多语言站点地图给出验证错误“没有可用的匹配全局元素声明”

时间:2016-10-14 13:39:52

标签: xml validation sitemap multilingual

我一直在尝试关注Google's recommendation for multi-lingual sitemaps。但是,当我在我的网站上尝试这个时,我收到错误:

  

错误1845:元素'{http://www.w3.org/1999/xhtml}link':没有匹配的全局元素声明,但严格的通配符要求。

即使我将Google的示例粘贴到站点地图验证程序中,我也会遇到同样的错误。我在这里缺少什么吗?

以下是谷歌的例子,我一直在调查验证器:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>http://www.example.com/english/</loc>
    <xhtml:link 
                 rel="alternate"
                 hreflang="de"
                 href="http://www.example.com/deutsch/"
                 />
    <xhtml:link 
                 rel="alternate"
                 hreflang="de-ch"
                 href="http://www.example.com/schweiz-deutsch/"
                 />
    <xhtml:link 
                 rel="alternate"
                 hreflang="en"
                 href="http://www.example.com/english/"
                 />
  </url>

  <url>
    <loc>http://www.example.com/deutsch/</loc>
    <xhtml:link 
                 rel="alternate"
                 hreflang="en"
                 href="http://www.example.com/english/"
                 />
     <xhtml:link 
                 rel="alternate"
                 hreflang="de-ch"
                 href="http://www.example.com/schweiz-deutsch/"
                 />
     <xhtml:link 
                 rel="alternate"
                 hreflang="de"
                 href="http://www.example.com/deutsch/"
                 />
  </url>

  <url>
    <loc>http://www.example.com/schweiz-deutsch/</loc>
     <xhtml:link 
                 rel="alternate"
                 hreflang="de"
                 href="http://www.example.com/deutsch/"
                 />
     <xhtml:link 
                 rel="alternate"
                 hreflang="en"
                 href="http://www.example.com/english/"
                 />
<xhtml:link 
                 rel="alternate"
                 hreflang="de-ch"
                 href="http://www.example.com/schweiz-deutsch/"
                 />
  </url>

</urlset> 

2 个答案:

答案 0 :(得分:5)

在xhtml命名空间定义的末尾添加/,如下所示:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml/">

答案 1 :(得分:1)

您使用的验证器http://tools.seochat.com/tools/site-validator/似乎不支持additional namespaces(例如您的xhtml)。