2013-05-28 68 views
5

我們啓動了一個支持20種語言和大量地區內容(即針對特定國家或國家/地區的內容)的主要網站。因此,我們有一個教科書使用案例,在我們的站點地圖中使用xhtml:link with rel ='hreflang'。我們通常更喜歡從XSD生成類,以便我們可以通過編程生成符合保證的XML。我希望找到一個更新的XSD,其中包含定義中的xhtml:鏈接。但是,我一直在回頭查看基本站點地圖xsd:http://www.sitemaps.org/schemas/sitemap/sitemap.xsd,它不支持xhtml:link(在xhtml-link-1.xsd中定義)。XSD對於HREFLANG的網站地圖

看起來谷歌只是支持xhtml:link元素及其支持的屬性,但在我嘗試手動修改基本sitemap.xsd以包含它之前,我想看看是否有人花時間發佈了一個已包含http://www.sitemaps.org/schemas/sitemap/0.9http://www.w3.org/1999/xhtml的XSD?如果是這樣,你能指出我正確的方向嗎?或者,如果我出於某種原因在這裏走錯了路,我也很欣賞被正確引導。先謝謝您的幫助!

+0

看起來不太有希望。如果我最終走上修改XSD的路線,我一定會發布它,以防其他人想要它... – jakejgordon

回答

7

從谷歌hreflang網站地圖指南是錯誤的。由於xhtml:鏈接不存在於命名空間中,站點地圖不會驗證。

將名稱空間更改爲下面的名稱空間,它將進行驗證。

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

感謝您的評論。我將在另一週或兩週後切換回站點地圖工作,屆時我會回來並更新我的發現。 – jakejgordon

+0

我不能相信這個工作,谷歌文檔沒有! – Hatef

1

如果你改變了命名空間的xmlns:XHTML =「http://www.w3.org/TR/xhtml11/xhtml11_schema.html」這是由@datahell您將收到來自谷歌命名空間警告提示當試圖驗證您的站點地圖。

你應該使用谷歌在他們的例子。這會導致您的鏈接看起來像網頁上的直接文本,這不是很吸引人。

您可能想也可能不想要樣式您的xml。

快樂多語言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>