2013-05-28 2 views
5

Мы запускаем крупный веб-сайт с поддержкой 20 языков и тонны регионального контента (т. Е. Контента, предназначенного для конкретной страны или набора стран). Таким образом, у нас есть пример использования учебника для использования xhtml: link с rel = 'hreflang' в нашей карте сайта. Обычно мы предпочитаем генерировать классы из XSD, чтобы мы могли программно генерировать XML, который гарантированно совместим. Я надеялся найти обновленный XSD, который включает в себя ссылку xhtml: в определениях. Тем не менее, я продолжаю обращать внимание на базовую карту сайта xsd: http://www.sitemaps.org/schemas/sitemap/sitemap.xsd, которая не поддерживает ссылку xhtml: link (определенную в xhtml-link-1.xsd).XSD Для Sitemap с HREFLANG

Похоже, что Google поддерживает только элемент xhtml: link с его поддерживаемыми атрибутами, но прежде чем я попытаюсь изменить основной файл sitemap.xsd вручную, чтобы включить это, я хотел, чтобы кто-нибудь потратил время на публикацию XSD, который уже имеет http://www.sitemaps.org/schemas/sitemap/0.9 и http://www.w3.org/1999/xhtml? Если да, не могли бы вы указать мне в правильном направлении? Или, если я почему-то пойду по неверному пути, я также понимаю, что меня направляют в правильном направлении. Заранее спасибо за помощь!

+0

Не выглядит очень перспективным. Если я в конечном итоге иду по пути изменения XSD, я обязательно отправлю его, если кто-то еще этого захочет ... – jakejgordon

ответ

7

Руководство по работе с hreflang из Google неверно. Карта сайта не проверяется, так как ссылка xhtml: не существует в пространстве имен.

Измените пространство имен ниже, и оно будет проверено.

xmlns:xhtml="http://www.w3.org/TR/xhtml11/xhtml11_schema.html" 
+0

Спасибо за комментарий. Я вернусь к работе с картой в другую неделю или две, и в этот момент я вернусь и обновляю это своими выводами. – jakejgordon

+0

Я не могу поверить, что это сработало, а документы Google не сделали! – Hatef

1

При изменении пространства имен Xmlns: XHTML = «http://www.w3.org/TR/xhtml11/xhtml11_schema.html», который был предложен @datahell вы получите предупреждение пространства имен из Google при попытке проверить ваш файл Sitemap.

Вы должны использовать тот, который имеет Google в своем примере. Это приведет к тому, что ваши ссылки будут выглядеть как прямой текст на веб-странице, что не очень привлекательно.

Вы можете или не хотите стилизовать свой xml.

Happy Multilingual Sitemapping!

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> 
Смежные вопросы