My sitemap looks something like this:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/page1.html</loc>
</url>
</urlset>
In the most examples in the internet urlset
tag has a xmlns
attribute with this value http://www.sitemaps.org/schemas/sitemap/0.9
. My question is, what that value comes from?
What exactly should it be?
http://www.sitemaps.org/schemas/sitemap/0.9
?The Sitemap protocol defines the XML schema which has the namespace http://www.sitemaps.org/schemas/sitemap/0.9
.
By using
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
you convey that the urlset
element (and its descendants, unless they have a different namespace) should be interpreted according to this Sitemap protocol.
Namespaces help to avoid name collisions. There is no central authority that controls which element names can be used in XML, so any other XML schema may specify an element named urlset
, too. Namespaces also allow you to mix elements from different XML schemas, e.g., for extending the Sitemaps protocol.
tl;dr: You have to provide (exactly!) this namespace value, otherwise it wouldn’t be a sitemap as defined by the Sitemap Protocol.