2012-07-02 2 views
0

w3c sitemap.xsd: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
Это выглядит следующим образом:Как использовать w3c sitemap.xsd для проверки w3c sitemap & google sitemap?

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" targetNamespace="http://www.sitemaps.org/schemas/sitemap/0.9" elementFormDefault="qualified"> 

У меня есть два файла карты сайта.
1. w3c sitmap файл, например:

<?xml version="1.0" encoding="UTF-8"?>                                                  
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
<url><loc>http://t.qq.com/p/t/42509089158929/</loc></url> 
</urlset> 

2.google-файл карты сайта, как это:

<?xml version="1.0" encoding="UTF-8"?> 
<urlset xmlns="http://www.google.com/schemas/sitemap/0.9"> 
<url> 
<loc>http://blog.ifeng.com/article/11487489.html</loc> 
<lastmod>2011-05-23T09:33:01+08:00</lastmod> 
<changefreq>daily</changefreq> 
<priority>1.0</priority> 
</url> 
</urlset> 

Я использую w3c sitemap.xsd проверить эти два файла xmllint.
1. w3c stitemap файл, нормальный и успех
2. Google-карта сайта файл, выход, как показано ниже

$ xmllint --schema sitemap.xsd sitemap_google.xml --noout 
sitemap_google.xml:2: element urlset: Schemas validity error : Element '{http://www.google.com/schemas/sitemap/0.9}urlset': No matching global declaration available for the validation root. 
sitemap_google.xml fails to validate 

Я думаю, что проблема пространства имен отличается в Google-sitemap.xml и sitemap.xsd , Как использовать файл sitemap.xsd для проверки этих двух файлов Sitemap?

Спасибо!

ответ

0

Если в документе экземпляра карты сайта google отсутствует ссылка на схему sitteaps.org sitemap, то я не вижу, как вы должны ее проверять или даже зачем вам это нужно.

Включая пространство имен в верхней части файла, экземпляр sitemap Google явно указывает, что он является экземпляром схемы карты сайта google.com, а не схемой Sitemap sitemaps.org.

+0

Тело каждого файла абсолютно одинаково. Файл Sitemap содержит ... и такие теги, я хочу проверить эти файлы на один файл xsd (schema), но я этого не сделал. Если я удалю xmlns = "http://www.google.com/schemas/sitemap/0.9" в файле Sitemap google, проверка будет проходить. – Felix

+0

Независимо от тела файла атрибут namespace определяет, где определены типы в вашем xml. Если вы хотите проверить файл, объявляющий его типы как определенные в schemaA, но используя schemaB, он не будет работать. –

+0

ой, так плохо. Я хочу проверить тезисы xml игнорировать их декларации пространства имен, есть ли у вас какие-либо идеи? Я использую xerces-c lib. – Felix

Смежные вопросы