我是Jackson XML的新手,我需要在同一根元素下构造具有不同元素名称和属性的Jackson XML。
我期望的xml输出
<item name="Whatever">
<problem_id id="12312"/>
<problem_type type="1765"/>
<problem_desc desc="faulty"/>
</item>
我的pojo类(不确定如何添加剩余的元素和属性)
@JacksonXmlRootElement(localName = "item")
public class ItemsDTO {
@JacksonXmlProperty(localName = "name",isAttribute = true)
private String name="Whatever";
}
任何建议都将不胜感激。
尽管将problem
的属性“封装”在一个单独的元素中会更好一些,但是如下所示:
<item name="Whatever">
<problem id="12312" type="1765" desc="faulty"/>
</item>
这可以通过以下代码实现:
@JacksonXmlRootElement(localName = "item")
public class ItemDTO {
@JacksonXmlProperty(isAttribute = true)
private String name = "Whatever";
@JacksonXmlProperty
private Problem problem = new Problem();
}
class Problem {
@JacksonXmlProperty(isAttribute = true)
private int id = 12312;
@JacksonXmlProperty(isAttribute = true)
private int type = 1765;
@JacksonXmlProperty(isAttribute = true)
private String desc = "faulty";
}
要做到这一点,您可能需要实现更多已经实现的类,然后将相关属性添加到容器类ItemsDTO
:
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
@JacksonXmlRootElement(localName = "item")
public class ItemsDTO {
@JacksonXmlProperty(isAttribute = true)
private String name = "Whatever";
@JacksonXmlProperty(localName = "problem_id")
private ProblemId problemId = new ProblemId();
@JacksonXmlProperty(localName = "problem_type")
private ProblemType problemType = new ProblemType();
@JacksonXmlProperty(localName = "problem_desc")
private ProblemDesc problemDesc = new ProblemDesc();
}
class ProblemId {
@JacksonXmlProperty(isAttribute = true)
private int id = 12312;
}
class ProblemType {
@JacksonXmlProperty(isAttribute = true)
private int type = 1765;
}
class ProblemDesc {
@JacksonXmlProperty(isAttribute = true)
private String desc = "faulty";
}
问题内容: 我正在成功尝试XmlUnit,对我的工作非常有帮助。现在,我有一个小问题,我不知道如何解决。我有一个Java类,它具有一个Set,并且在将其转换为XML时,其中的元素可以具有任何顺序。 当我在XmlUnit中尝试这两个文件时,它可以工作(Diff说它们是相似的): 但是,当标签具有相同的名称(具有不同的属性)时,它将不起作用(它将属性混合在一起,并期望在另一个标签中使用): 有什么解决
我想知道是否有任何方法可以告诉我具有相同标记名称、文本和类(如果有)的元素与具有相同标记名称、文本和相同类(如果有)的其他元素不同。为了澄清,请考虑以下超文本标记语言片段: 现在在上面的代码中,我如何使用div标签和text将两个元素分开。另请注意,这里的两个元素没有id。 上面的例子非常简单,但实际情况可能更复杂。因此,如果您好心地向我提出一个概括的答案,我将不胜感激。谢谢。
我试图找到一个没有属性的元素的XPath。它只能通过其父级的属性来识别。然而,父级也不具有唯一属性。 例如: 这里有两个元素。如何获得第二个元素。上面的语法为我提供了第一个元素。。但是,如果我使用: 我得到一个错误消息"xpath表达式 '//*[@id="btn"][2]/ul/li[2]/a/span'无法计算或不会导致WebElement"
问题内容: 我正在尝试使用RSA 7.5和Websphere 7服务器开发IBM JAX_WS Web服务。因为我是一个初学者,所以我遵循Java类优先方法,即首先创建Java类,然后生成WSDL文件。 当我尝试创建wsdl文件时,出现异常: java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.I
问题内容: 我正在用C#编写.NET Framework 3.5。 我正在尝试将某些Json解析为JObject。 Json如下: 当我尝试将此Json解析为JObject时,JObject仅了解LargeBox。SmallBox和MedBox的信息丢失。显然,这是因为它将“ TBox”解释为一个属性,并且该属性已被覆盖。 我从Delphi编码的服务中收到此Json。我正在尝试为该服务创建C#代理
和 元名称和元属性有什么区别?