我尝试扩展sitemap.xsd:我想向 tUrl complexType 添加一个新元素(称为“crawl”)。
所以我创建了一个 sitemap-extended.xsd(我重新定义了 sitemap.xsd 并扩展了 tUrl)。:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
elementFormDefault="qualified">
<xsd:redefine schemaLocation="sitemap.xsd">
<xsd:complexType name="tUrl">
<xsd:complexContent mixed="false">
<xsd:extension base="tUrl">
<xsd:sequence>
<xsd:element name="crawl" type="xsd:string" maxOccurs="1" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:redefine>
</xsd:schema>
这是有效的,但生成的 XML 无效(例如,由于未知实体 - 抓取,googlebot 将无法验证此 XML)。所以我认为我应该使用不同的命名空间来实现这一点,但我没有找到任何解决方案。
我希望能够编组/解组这种 XML:
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:ext="http://www.mycompany.com/schema/myns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
http://www.mycompany.com/schema/myns http://www.mycompany.com/schema/myns/sitemap.xsd">
<url>
<loc>...</loc>
<ext:crawl>...</ext:crawl>
...
</url>
</urlset>
任何的想法 ?谢谢