5

我们正在推出一个支持 20 种语言和大量区域内容(即针对特定国家或国家/地区的内容)的主要网站。因此,我们有一个教科书用例在我们的站点地图中使用 xhtml:link 和 rel='hreflang'。我们通常更喜欢从 XSD 生成类,以便我们可以以编程方式生成保证兼容的 XML。我希望找到一个更新的 XSD,其中包含 xhtml:link 在定义中。但是,我一直被指向基本站点地图 xsd:http ://www.sitemaps.org/schemas/sitemap/sitemap.xsd ,它不支持 xhtml:link(在 xhtml-link-1.xsd 中定义) .

看起来谷歌只支持一个 xhtml:link 元素及其支持的属性,但在我尝试手动修改基本的 sitemap.xsd 以包含它之前,我想看看是否有人花时间发布已经有的 XSD包括http://www.sitemaps.org/schemas/sitemap/0.9http://www.w3.org/1999/xhtml?如果是这样,你能指出我正确的方向吗?或者,如果我出于某种原因在这里走错了路,我也很感激被引导到正确的方向。在此先感谢您的帮助!

4

3 回答 3

7

来自谷歌的带有 hreflang 的站点地图指南是错误的。由于命名空间中不存在 xhtml:link,因此站点地图无法验证。

将命名空间更改为以下名称,它将验证。

xmlns:xhtml="http://www.w3.org/TR/xhtml11/xhtml11_schema.html"
于 2013-06-28T16:36:34.770 回答
1

If you change the namespace to xmlns:xhtml="http://www.w3.org/TR/xhtml11/xhtml11_schema.html" which was suggested by @datahell you will receive a namespace warning from google when trying to validate your sitemap.

You should use the one that google has in their example. This will cause your links to look like straight text on a webpage which is not very appealing.

You may or may not want to style your xml.

Happy Multilingual Sitemapping!

于 2014-07-14T13:43:13.047 回答
0

我有同样的问题,我找到了解决方案。将所有 XSD 下载到本地驱动器并创建一个导入所有命名空间的新 XSD 文件。

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://symfony.com/schema"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://symfony.com/schema"
            elementFormDefault="qualified">
    <!--
        The Sitemap schema does not include the link element that is
        utilized by Google for multi-language Sitemaps. Hence, we need
        to combine the two schemas for automated validation in a dedicated
        XSD.
    -->
    <xsd:import namespace="http://www.sitemaps.org/schemas/sitemap/0.9"
                schemaLocation="sitemap.xsd"/>
    <xsd:import namespace="http://www.w3.org/1999/xhtml"
                schemaLocation="xhtml1-strict.xsd"/>
</xsd:schema>
于 2015-10-24T09:41:24.433 回答