问题
I am trying to create a sitemap such as the below and I get this error:
<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xhtml:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>http://www.something.com/something</loc>
<xhtml:link rel="alternate" hreflang="en-us" href="http://www.something.com/something" />
</url>
</urlset>
Error:
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> ^ Error 1866: Element '{http://www.sitemaps.org/schemas/sitemap/0.9}urlset', attribute '{http://www.w3.org/1999/xhtml}schemaLocation': The attribute '{http://www.w3.org/1999/xhtml}schemaLocation' is not allowed. on line: 3
'{http://www.w3.org/1999/xhtml}link': No matching global element declaration available, but demanded by the strict wildcard.
Please advice. Thank you.
回答1:
There are two issues in this document:
The schemaLocation attribute must be in the XML Schema Instance namespace.
The url element is invalid, because its definition says
processContents="strict"
and the schema for XHTML was missing so that there was no xhtml:link declaration in scope.<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.w3.org/1999/xhtml http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd"> <url> <loc>http://www.something.com/something</loc> <xhtml:link rel="alternate" hreflang="en-us" href="http://www.something.com/something" /> </url> </urlset>
回答2:
You should place your site maps inside of your robots.txt
file. Google tends to do things fairly strict so listening to them will help you better understand the structure they expect.
My website's robots.txt file as a live example (link in profile).
来源:https://stackoverflow.com/questions/36193346/validation-of-xml-sitemap-urlset-with-xhtmllink-inside-url-element