java - 通过 Java Spring 构建 sitemap.xml

标签 java xml spring sitemap

<分区>

我正在通过 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>

通过在您的包中添加 package-info.java 文件来解决此问题,您已放置具有以下内容的 XmlUrlSet 类。

@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>

关于java - 通过 Java Spring 构建 sitemap.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714663/

相关文章:

java - RichFaces 文件上传抛出 NullPointerException

java - Spring mvc xml配置错误

java - Spring : message. 属性文件不起作用

java - SpringBoot增删改查

java - 高效的图联合测试?

java - 解析方法调用: Implicit dependencies on other classes

java - 如何使用java解析xsd字符串以获取其元素?

xml - 无法在新的 ApachePOI XSSFWorkbook 中简单地创建主题

java - Cucumber - 与类型注册表配置文件共享上下文

java - 添加库为 "Referenced library"