通过 Java Spring 构建 sitemap.xml
Build sitemap.xml by Java Spring
我正在通过 Spring MVC
构建一个 sitemap.xml
@XmlRootElement(name = "urlset")
public class XmlUrlSet{
@XmlElements(@XmlElement(name = "url", type = XmlUrl.class))
private List<XmlUrl> sitemap = new ArrayList<XmlUrl>();
public void addUrl(XmlUrl xmlUrl) {
sitemap.add(xmlUrl);
}
public List<XmlUrl> getXmlUrls() {
return sitemap;
}
}
它呈现如下:
<urlset>
<url>
...
</url>
<url>
...
</url>
</urlset>
我只想知道如何为 xml 和 xml 版本添加命名空间,例如 Google 的站点地图示例?
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/foo.html</loc>
</url>
</urlset>
希望您可能已经找到了解决方案。不过,这个答案可能对某人有帮助。
将 @XmlRootElement(name = "urlset")
替换为 @XmlRootElement(name = "urlset", namespace = "http://www.sitemaps.org/schemas/sitemap/0.9")
即可解决您的问题。
更新
如果您尝试过上述解决方案。您将得到如下结果。
<ns2:urlset xmlns:ns2="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
</url>
</ns2:urlset>
通过在您放置 XmlUrlSet class 的包中添加 package-info.java 文件来解决此问题,其中包含以下内容。
@XmlSchema(
namespace="http://www.something.com/something",
elementFormDefault=XmlNsForm.QUALIFIED)
package your.package;
import javax.xml.bind.annotation.*;
应该可以解决您的问题。
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
</url>
</urlset>
我正在通过 Spring MVC
构建一个 sitemap.xml@XmlRootElement(name = "urlset")
public class XmlUrlSet{
@XmlElements(@XmlElement(name = "url", type = XmlUrl.class))
private List<XmlUrl> sitemap = new ArrayList<XmlUrl>();
public void addUrl(XmlUrl xmlUrl) {
sitemap.add(xmlUrl);
}
public List<XmlUrl> getXmlUrls() {
return sitemap;
}
}
它呈现如下:
<urlset>
<url>
...
</url>
<url>
...
</url>
</urlset>
我只想知道如何为 xml 和 xml 版本添加命名空间,例如 Google 的站点地图示例?
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/foo.html</loc>
</url>
</urlset>
希望您可能已经找到了解决方案。不过,这个答案可能对某人有帮助。
将 @XmlRootElement(name = "urlset")
替换为 @XmlRootElement(name = "urlset", namespace = "http://www.sitemaps.org/schemas/sitemap/0.9")
即可解决您的问题。
更新
如果您尝试过上述解决方案。您将得到如下结果。
<ns2:urlset xmlns:ns2="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
</url>
</ns2:urlset>
通过在您放置 XmlUrlSet class 的包中添加 package-info.java 文件来解决此问题,其中包含以下内容。
@XmlSchema(
namespace="http://www.something.com/something",
elementFormDefault=XmlNsForm.QUALIFIED)
package your.package;
import javax.xml.bind.annotation.*;
应该可以解决您的问题。
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
</url>
</urlset>