使用xhtml验证XML Sitemap urlset:url元素内的链接

时间:2016-03-24 04:33:00

标签: xml xsd xhtml xml-namespaces sitemap

我正在尝试创建一个站点地图,如下所示,我收到此错误:

 <?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" 
    xhtml:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
        http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
     <url>
         <loc>http://www.something.com/something</loc>
         <xhtml:link rel="alternate" hreflang="en-us" href="http://www.something.com/something" />
     </url>
 </urlset>

错误:

  

http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd&#34;&GT; ^错误1866:元素&#39; {http://www.sitemaps.org/schemas/sitemap/0.9} urlset&#39;,属性&#39; {http://www.w3.org/1999/xhtml} schemaLocation&#39;:属性&#39; {http://www.w3.org/1999/xhtml }的schemaLocation&#39;不被允许。在线:3

     

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

请指教。谢谢。

3 个答案:

答案 0 :(得分:2)

本文档中有两个问题:

  1. schemaLocation属性必须位于XML Schema Instance命名空间中。

  2. url元素无效,因为它的定义为processContents="strict",并且缺少XHTML的架构,因此范围内没有xhtml:link声明。

    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:xhtml="http://www.w3.org/1999/xhtml"
        xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
        http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
        http://www.w3.org/1999/xhtml
        http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd">
      <url>
        <loc>http://www.something.com/something</loc>
        <xhtml:link rel="alternate" hreflang="en-us" href="http://www.something.com/something" />
      </url>
    </urlset>
    

答案 1 :(得分:2)

旧的 - 但搜索时仍然出现。 实际上问题是您使用的是 xhtml:link 然后您需要“其他”urlsets...http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd

<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.w3.org/TR/xhtml11/xhtml11_schema.html http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/TR/xhtml11/xhtml11_schema.html">

参考: XML Sitemap rendering as plain text

答案 2 :(得分:0)

您应将站点地图放在robots.txt文件中。谷歌倾向于做相当严格的事情,所以倾听它们将有助于你更好地理解他们期望的结构。

我的网站robots.txt文件作为实例(个人资料中的链接)。