【问题标题】:For XML Sitemaps, can a document contain multiple Protocol Extensions?对于 XML 站点地图,一个文档可以包含多个协议扩展吗?
【发布时间】:2017-11-30 21:46:11
【问题描述】:

在问这个问题之前我做了很多研究。我什至去谷歌搜索"sitemap" filetype:xml——查看一些大联盟站点地图文件,看看这里是否有答案。

实际问题:

  1. XML 站点地图支持“扩展”:https://www.sitemaps.org/protocol.html#extending
  2. Google 支持新闻、图片、视频和通用:https://support.google.com/webmasters/topic/6080646?hl=en&ref_topic=4581190
  3. 还支持多语言内容:https://support.google.com/webmasters/answer/2620865?hl=en&ref_topic=6080646
  4. 它还支持“站点地图索引”:https://support.google.com/webmasters/answer/75712?visit_id=1-636476631020171976-2911222833&rd=1

一个 XML 站点地图可以同时使用多个扩展吗?

我找不到任何人在野外这样做的例子。这意味着要么它不起作用,要么有一个很好的理由不这样做。但是我找不到关于此的支持信息。


站点地图索引作为自己的文档是有意义的,因为 XSD 文件必须不同:https://www.sitemaps.org/schemas/sitemap/0.9/

但是看这里:https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd——我没有找到任何线索……然后是耐克的 XML 文档:https://store.nike.com/sitemap-store-en-ca.xml

它有:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">

但站点地图的内容仍然是规范化的,没有混合节点。

https://www.google.com/schemas/sitemap-image/1.1/我明白了:

Google 使用 XML 架构来定义元素和属性,这些元素和属性可以 出现在您的站点地图文件中。一个站点地图可能包含两个核心站点地图 元素和特定于图像的元素。

我真的很想知道,我是否可以拥有一个博客——然后是一个 XML 站点地图,其中包含文章的 URL、URL、翻译 XHTML 节点、我希望为此编入索引的图像URL,该 URL 上的视频等等……

您能否转到http://www.cnn.com/sitemaps/sitemap-gallery-2017-11.xml 并在 urlsets 中,将视频内容与图像内容并行添加?

【问题讨论】:

    标签: xml xsd xml-parsing xml-sitemap


    【解决方案1】:

    这至少得到 Google 的支持。如果您在此处查看 XML 站点地图格式:https://support.google.com/webmasters/answer/183668?hl=en

    您会在此示例中找到混合图像和视频节点的示例。

    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
      xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" 
      xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
      <url> 
        <loc>http://www.example.com/foo.html</loc> 
        <image:image>
           <image:loc>http://example.com/image.jpg</image:loc>
           <image:caption>Dogs playing poker</image:caption>
        </image:image>
        <video:video>
          <video:content_loc>
            http://www.example.com/video123.flv
          </video:content_loc>
          <video:player_loc allow_embed="yes" autoplay="ap=1">
            http://www.example.com/videoplayer.swf?video=123
          </video:player_loc>
          <video:thumbnail_loc>
            http://www.example.com/thumbs/123.jpg
          </video:thumbnail_loc>
          <video:title>Grilling steaks for summer</video:title>  
          <video:description>
            Cook the perfect steak every time.
          </video:description>
        </video:video>
      </url>
    </urlset>
    

    我在这里查看了图像命名空间的 XSD:http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd

    这些节点的架构定义对兄弟节点没有任何要求,您应该能够在 urlset 中删除这些混合站点地图节点类型。

    【讨论】:

    • 当然,在第一页……答案隐藏在手风琴中……哈哈——所以现在的问题可能是“为什么没有人这样做?” -- 人们一直在谈论“图像站点地图”,我一直认为这很奇怪,因为图像通常伴随着其他更多样化的内容,而且人们正在创建内容特定的站点地图——无论如何,这是另一个话题。
    • 根据:support.google.com/webmasters/answer/178636?hl=en -- “您可以使用单独的站点地图来列出图像,或者您可以将图像信息添加到现有的站点地图。” -- 这似乎无关紧要 -- 但人们倾向于单独的文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多