我们正在推出一个主要网站,支持20种语言和大量区域内容(即针对特定国家或一组国家的内容)。因此,我们在网站地图中使用xhtml:link with 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以包含此元素之前,我想看看是否有人花时间发布了已经包含http://www.sitemaps.org/schemas/sitemap/0.9和http://www.w3.org/1999/xhtml的XSD?如果是这样的话,你能告诉我正确的方向吗?或者,如果我在这里走错了路,出于某种原因,我也很感激被引导到正确的方向。提前感谢您的帮助!
发布于 2013-06-29 00:36:35
google的hreflang网站地图指南是错误的。站点地图未验证,因为命名空间中不存在xhtml:link。
将名称空间更改为下面的名称空间,它将进行验证。
xmlns:xhtml="http://www.w3.org/TR/xhtml11/xhtml11_schema.html"发布于 2014-07-14 21:43:13
如果您按照@datahell的建议将名称空间更改为xmlns:xhtml="http://www.w3.org/TR/xhtml11/xhtml11_schema.html“,您将在尝试验证您的站点地图时收到来自谷歌的名称空间警告。
您应该使用google在他们的示例中提供的示例。这将导致您的链接看起来像网页上的直接文本,这是不是很有吸引力。
您可能想要也可能不想设置xml的样式。
多语言Sitemapping快乐!
发布于 2015-10-24 17:41:24
我也遇到了同样的问题,我找到了解决方案。将所有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>https://stackoverflow.com/questions/16798979
复制相似问题