当前位置: 首页 > 知识库问答 >
问题:

如何在rest XML响应中添加命名空间?

焦光霁
2023-03-14

我们正在创建一个可以支持XML和JSON格式的Spring boot REST服务。我们使用这里描述的相同方法:接受/返回XML/JSON请求和响应- Spring MVC

除了我们需要在XML响应中有一个名称空间之外,它大部分都是有效的,目前响应XML没有任何名称空间。我们尝试在DTO类中添加以下内容,并尝试创建“package info.java”。两者都不起作用。有人有什么建议吗?

@javax.xml.bind.annotation.XmlSchema(namespace = “http://www.aa.com/bb”, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { @javax.xml.bind.annotation.XmlNs(prefix=“ns1”, namespaceURI=“http://www.aa.com/bb”) })

共有2个答案

裴曜灿
2023-03-14

您是否尝试过向 XMLElement 或 XMLRootElement 提供命名空间,如下所示:

@XmlRootElement(name = "student", namespace="ns1")
public class Student implements Serializable {
    private static final long serialVersionUID = 1L;

我还没有在项目中尝试过,但似乎很有意义。这里有一个类似的问题/答案:https://stackoverflow.com/a/46501216/402341

太叔英卫
2023-03-14

解决方法是使用“JacksonXmlRootElement”(而不是“XmlRootElement”)和“JacksonXmlProperty”(而不是“XmlElement”)批注。比如:

@JacksonXmlRootElement(namespace="http://www.aa.com/bb", localName="courseName")
public class Course implements Serializable {
    private static final long serialVersionUID = 1L;
    private String courseName;

    @JacksonXmlProperty(namespace="http://www.aa.com/bb")
    public String getCourseName() { return courseName; }
 类似资料:
  • 我使用的是WSO2 ESB 4.8.1,我希望使用XSLT修改soap消息。 我的soap消息: XSLT: 我在WSO2 ESB中创建了一个xslt文件作为本地条目。但是它添加了一个默认名称空间xmlns=“http://ws.apache.org/ns/synapse”,并将xslt改为: 因此,我的soap messsage结果是: 如何在WSO2 ESB中使用XSLT修改此元素名称而不添加

  • 问题内容: 在花了几个令人沮丧的时间后,我正在寻求您的帮助。 我正在尝试从SOAP响应中获取特定节点的内容。 响应是 我试图了解 的节点和子节点。由于XML包含名称空间 不起作用。我已经阅读了许多文章,例如 http://www.sitepoint.com/blogs/2005/10/20/simplexml-and-namespaces/ http://blog.stuartherbert.co

  • 如何使 slack 解析提及为指向用户的链接而不是明文。我一直在阅读有关消息格式的松弛文档,但仍然没有弄清楚。以下是我现在得到的一个例子:

  • 我需要添加一些空间开始的第一项和结束的最后一项的回收,所以他们可以滚动到屏幕的边缘(因为他们不能与回收器视图的边距或填充) 问题是项目之间的间距应该不同,所以我不能只是将这个“空间”添加到项目布局中。现在,我正试图将ItemEdition添加到我的回收器中,但结果就是这样: 在我触摸它之前,行间距随机出现:随机行间距 然后,当我滚动到最后并返回时,所需的空间出现在屏幕上适合的最后一项之后,而不是在

  • 我正在创建一个基于以下代码的动态sitemap.xml 这是可行的,但Google不高兴“urlset”节点中没有Namespace声明。Google错误:“您的Sitemap或Sitemap索引文件未声明预期的命名空间:http://www.sitemaps.org/schemas/sitemap/0.9" 如果我将代码更改为: 它无法生成xml文件并引用以下内容: 在测试中,我发现节点需要一个

  • 我正在生成一个XML Xades签名。我需要在标记签名中添加名称空间http://uri.etsi.org/01903/v1.3.2#。 如果我在对文档签名后添加此标记,我将得到无效签名错误。 我需要命名空间将在标记签名中而不是标记对象中